diff --git a/TV Player WPF/ViewModels/GroupInfo.cs b/TV Player WPF/PlaylistWorker/GroupInfo.cs similarity index 100% rename from TV Player WPF/ViewModels/GroupInfo.cs rename to TV Player WPF/PlaylistWorker/GroupInfo.cs diff --git a/TV Player WPF/ViewModels/M3UInfo.cs b/TV Player WPF/PlaylistWorker/M3UInfo.cs similarity index 100% rename from TV Player WPF/ViewModels/M3UInfo.cs rename to TV Player WPF/PlaylistWorker/M3UInfo.cs diff --git a/TV Player WPF/ViewModels/M3UParser.cs b/TV Player WPF/PlaylistWorker/M3UParser.cs similarity index 100% rename from TV Player WPF/ViewModels/M3UParser.cs rename to TV Player WPF/PlaylistWorker/M3UParser.cs diff --git a/TV Player WPF/TV Player WPF.csproj b/TV Player WPF/TV Player WPF.csproj index 2a857bf..ca7df6a 100644 --- a/TV Player WPF/TV Player WPF.csproj +++ b/TV Player WPF/TV Player WPF.csproj @@ -20,14 +20,13 @@ - + true - diff --git a/TV Player/Handlers/AndroidHandler.cs b/TV Player/Handlers/AndroidHandler.cs new file mode 100644 index 0000000..6c684a0 --- /dev/null +++ b/TV Player/Handlers/AndroidHandler.cs @@ -0,0 +1,74 @@ +using Microsoft.Maui.Handlers; +using static Microsoft.Maui.ApplicationModel.Permissions; + +namespace TV_Player.MAUI +{ + //public partial class MediaViewerHandler : ViewHandler + //{ + // VideoView _videoView; + // LibVLC _libVLC; + // LibVLCSharp.Shared.MediaPlayer _mediaPlayer; + + // protected override VideoView CreatePlatformView() => new VideoView(Context); + + // protected override void ConnectHandler(VideoView nativeView) + // { + // base.ConnectHandler(nativeView); + + // _libVLC = new LibVLC(enableDebugLogs: true); + // _mediaPlayer = new LibVLCSharp.Shared.MediaPlayer(_libVLC) + // { + // EnableHardwareDecoding = true + // }; + + // _videoView = nativeView ?? new VideoView(Context); + // _videoView.MediaPlayer = _mediaPlayer; + + // HandleUrl(VirtualView.StreamUrl); + + // base.ConnectHandler(nativeView); + // } + + // protected override void DisconnectHandler(VideoView nativeView) + // { + // nativeView.Dispose(); + // base.DisconnectHandler(nativeView); + // } + + // private void HandleUrl(string url) + // { + // try + // { + + // if (url.EndsWith("/")) + // { + // url = url.TrimEnd('/'); + // } + + // //url = "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"; + + // if (!string.IsNullOrEmpty(url)) + // { + // var media = new Media(_libVLC, url, FromType.FromLocation); + + // _mediaPlayer.NetworkCaching = 1500; + + // if (_mediaPlayer.Media != null) + // { + // _mediaPlayer.Stop(); + // _mediaPlayer.Media.Dispose(); + // } + + // _mediaPlayer.Media = media; + // _mediaPlayer.Mute = true; + + // _videoView.MediaPlayer.Play(); + // } + // } + // catch (Exception ex) + // { + // } + // } + + //} +} diff --git a/TV Player/MediaViewer.cs b/TV Player/Handlers/MediaViewer.cs similarity index 99% rename from TV Player/MediaViewer.cs rename to TV Player/Handlers/MediaViewer.cs index 7c40dfd..6b04e0f 100644 --- a/TV Player/MediaViewer.cs +++ b/TV Player/Handlers/MediaViewer.cs @@ -1,6 +1,7 @@  namespace TV_Player.MAUI { + public class MediaViewer : ContentView { //private MediaPlayer _mediaPlayer; diff --git a/TV Player/Handlers/MediaViewerHandler.cs b/TV Player/Handlers/MediaViewerHandler.cs new file mode 100644 index 0000000..d563361 --- /dev/null +++ b/TV Player/Handlers/MediaViewerHandler.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TV_Player.MAUI +{ +// public partial class MediaViewerHandler +// { +// public static IPropertyMapper PropertyMapper = +// new PropertyMapper() +// { +// }; + +// public static CommandMapper CommandMapper = new(ViewCommandMapper) +// { +// }; + +// public MediaViewerHandler() : base(PropertyMapper, CommandMapper) +// { +// } +// } +} diff --git a/TV Player/MauiProgram.cs b/TV Player/MauiProgram.cs index 7381dc8..40a150e 100644 --- a/TV Player/MauiProgram.cs +++ b/TV Player/MauiProgram.cs @@ -1,5 +1,4 @@  -using CommunityToolkit.Maui; namespace TV_Player.MAUI { @@ -10,7 +9,6 @@ namespace TV_Player.MAUI var builder = MauiApp.CreateBuilder(); builder .UseMauiApp() - .UseMauiCommunityToolkitMediaElement() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); diff --git a/TV Player/PlayerPage.xaml b/TV Player/PlayerPage.xaml index bc24a29..c5b4fa4 100644 --- a/TV Player/PlayerPage.xaml +++ b/TV Player/PlayerPage.xaml @@ -7,6 +7,6 @@ > - + diff --git a/TV Player/PlayerPage.xaml.cs b/TV Player/PlayerPage.xaml.cs index 7fc003b..585b404 100644 --- a/TV Player/PlayerPage.xaml.cs +++ b/TV Player/PlayerPage.xaml.cs @@ -67,12 +67,4 @@ public partial class PlayerPage : ContentPage return await client.GetByteArrayAsync(streamUrl); } } - - protected override void OnAppearing() - { - base.OnAppearing(); - // Set the MediaElement source to the temporary file when the page appears - mediaElement.Source = tempFilePath; - mediaElement.ShouldAutoPlay = true; // Auto-play the media - } } diff --git a/TV Player/TV Player MAUI.csproj b/TV Player/TV Player MAUI.csproj index 084266f..9e7183d 100644 --- a/TV Player/TV Player MAUI.csproj +++ b/TV Player/TV Player MAUI.csproj @@ -46,7 +46,6 @@ -