├── .gitignore
├── MauiVlc
├── Resources
│ ├── Fonts
│ │ ├── OpenSans-Regular.ttf
│ │ └── OpenSans-Semibold.ttf
│ ├── AppIcon
│ │ ├── appicon.svg
│ │ └── appiconfg.svg
│ ├── Splash
│ │ └── splash.svg
│ ├── Styles
│ │ ├── Colors.xaml
│ │ └── Styles.xaml
│ └── Images
│ │ └── dotnet_bot.svg
├── Properties
│ └── launchSettings.json
├── AppShell.xaml.cs
├── Platforms
│ ├── Android
│ │ ├── Resources
│ │ │ └── values
│ │ │ │ └── colors.xml
│ │ ├── AndroidManifest.xml
│ │ ├── MainApplication.cs
│ │ └── MainActivity.cs
│ └── iOS
│ │ ├── AppDelegate.cs
│ │ ├── Program.cs
│ │ └── Info.plist
├── AppShell.xaml
├── App.xaml.cs
├── Handlers
│ ├── MediaViewerHandler.cs
│ ├── MediaViewerHandler.Android.cs
│ └── MediaViewerHandler.iOS.cs
├── App.xaml
├── MainPage.xaml
├── MainPage.xaml.cs
├── MauiProgram.cs
├── Controls
│ └── MediaViewer.cs
└── MauiVlc.csproj
├── LICENSE
├── MauiVlc.sln
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | obj/
2 | bin/
3 |
4 | *.user
5 | .vs/
6 |
7 | **/Resources/Resource.designer.cs
8 | *.txt
9 |
10 | *.swp
11 |
12 |
--------------------------------------------------------------------------------
/MauiVlc/Resources/Fonts/OpenSans-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rretamal/MauiVLC/HEAD/MauiVlc/Resources/Fonts/OpenSans-Regular.ttf
--------------------------------------------------------------------------------
/MauiVlc/Resources/Fonts/OpenSans-Semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rretamal/MauiVLC/HEAD/MauiVlc/Resources/Fonts/OpenSans-Semibold.ttf
--------------------------------------------------------------------------------
/MauiVlc/Properties/launchSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "profiles": {
3 | "Windows Machine": {
4 | "commandName": "MsixPackage",
5 | "nativeDebugging": false
6 | }
7 | }
8 | }
--------------------------------------------------------------------------------
/MauiVlc/AppShell.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace MauiVlc
2 | {
3 | public partial class AppShell : Shell
4 | {
5 | public AppShell()
6 | {
7 | InitializeComponent();
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/MauiVlc/Resources/AppIcon/appicon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/MauiVlc/Platforms/Android/Resources/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #512BD4
4 | #2B0B98
5 | #2B0B98
6 |
--------------------------------------------------------------------------------
/MauiVlc/Platforms/iOS/AppDelegate.cs:
--------------------------------------------------------------------------------
1 | using Foundation;
2 | using Microsoft.Maui;
3 |
4 | namespace MauiVlc
5 | {
6 | [Register("AppDelegate")]
7 | public class AppDelegate : MauiUIApplicationDelegate
8 | {
9 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/MauiVlc/Platforms/Android/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/MauiVlc/Platforms/Android/MainApplication.cs:
--------------------------------------------------------------------------------
1 | using Android.App;
2 | using Android.Runtime;
3 |
4 | namespace MauiVlc
5 | {
6 | [Application]
7 | public class MainApplication : MauiApplication
8 | {
9 | public MainApplication(IntPtr handle, JniHandleOwnership ownership)
10 | : base(handle, ownership)
11 | {
12 | }
13 |
14 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/MauiVlc/AppShell.xaml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/MauiVlc/Platforms/iOS/Program.cs:
--------------------------------------------------------------------------------
1 | using ObjCRuntime;
2 | using UIKit;
3 |
4 | namespace MauiVlc
5 | {
6 | public class Program
7 | {
8 | // This is the main entry point of the application.
9 | static void Main(string[] args)
10 | {
11 | // if you want to use a different Application Delegate class from "AppDelegate"
12 | // you can specify it here.
13 | UIApplication.Main(args, null, typeof(AppDelegate));
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/MauiVlc/Platforms/Android/MainActivity.cs:
--------------------------------------------------------------------------------
1 | using Android.App;
2 | using Android.Content.PM;
3 | using Android.OS;
4 | using Microsoft.Maui;
5 |
6 | namespace MauiVlc
7 | {
8 | [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
9 | public class MainActivity : MauiAppCompatActivity
10 | {
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/MauiVlc/App.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace MauiVlc
2 | {
3 | public partial class App : Application
4 | {
5 | public event Action OnSleepEvent;
6 | public event Action OnResumeEvent;
7 |
8 | public App()
9 | {
10 | InitializeComponent();
11 |
12 | MainPage = new AppShell();
13 | }
14 |
15 | protected override void OnSleep()
16 | {
17 | OnSleepEvent?.Invoke();
18 | }
19 |
20 | protected override void OnResume()
21 | {
22 | OnResumeEvent?.Invoke();
23 | }
24 |
25 |
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/MauiVlc/Handlers/MediaViewerHandler.cs:
--------------------------------------------------------------------------------
1 | using MauiVlc.Controls;
2 | using Microsoft.Maui.Handlers;
3 | using System;
4 |
5 | namespace MauiVlc.Handlers
6 | {
7 | public partial class MediaViewerHandler
8 | {
9 | public static IPropertyMapper PropertyMapper =
10 | new PropertyMapper()
11 | {
12 | };
13 |
14 | public static CommandMapper CommandMapper = new(ViewCommandMapper)
15 | {
16 | };
17 |
18 | public MediaViewerHandler() : base(PropertyMapper, CommandMapper)
19 | {
20 | }
21 | }
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/MauiVlc/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/MauiVlc/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
12 |
13 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/MauiVlc/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | namespace MauiVlc
2 | {
3 | public partial class MainPage : ContentPage
4 | {
5 | int count = 0;
6 |
7 | public string VideoUrl { get; set; } = "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4";
8 |
9 | public MainPage()
10 | {
11 | InitializeComponent();
12 |
13 | this.BindingContext = this;
14 |
15 | ((App)Application.Current).OnSleepEvent += MainPage_OnSleepEvent;
16 | ((App)Application.Current).OnResumeEvent += MainPage_OnResumeEvent;
17 | }
18 |
19 | protected override void OnAppearing()
20 | {
21 | base.OnAppearing();
22 | }
23 |
24 | private void MainPage_OnResumeEvent()
25 | {
26 | videoViewer.Play();
27 | }
28 |
29 | private void MainPage_OnSleepEvent()
30 | {
31 | videoViewer.Pause();
32 | }
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/MauiVlc/MauiProgram.cs:
--------------------------------------------------------------------------------
1 | using MauiVlc.Controls;
2 | using Microsoft.Extensions.Logging;
3 |
4 | namespace MauiVlc
5 | {
6 | public static class MauiProgram
7 | {
8 | public static MauiApp CreateMauiApp()
9 | {
10 | var builder = MauiApp.CreateBuilder();
11 | builder
12 | .UseMauiApp()
13 | .ConfigureMauiHandlers((handlers) => {
14 | handlers.AddHandler(typeof(MediaViewer), typeof(MauiVlc.Handlers.MediaViewerHandler));
15 | })
16 | .ConfigureFonts(fonts =>
17 | {
18 | fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
19 | fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
20 | });
21 |
22 | #if DEBUG
23 | builder.Logging.AddDebug();
24 | #endif
25 |
26 | return builder.Build();
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/MauiVlc/Controls/MediaViewer.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace MauiVlc.Controls
4 | {
5 | public class MediaViewer : View
6 | {
7 | public event Action PauseRequested;
8 | public event Action PlayRequested;
9 |
10 | public static BindableProperty VideoUrlProperty = BindableProperty.Create(nameof(VideoUrl)
11 | , typeof(string)
12 | , typeof(MediaViewer)
13 | , ""
14 | , defaultBindingMode: BindingMode.TwoWay);
15 |
16 | ///
17 | /// Disables or enables scanning
18 | ///
19 | public string VideoUrl
20 | {
21 | get => (string)GetValue(VideoUrlProperty);
22 | set => SetValue(VideoUrlProperty, value);
23 | }
24 |
25 | public MediaViewer()
26 | {
27 | }
28 |
29 | public void Pause()
30 | {
31 | PauseRequested?.Invoke();
32 | }
33 |
34 | public void Play()
35 | {
36 | PlayRequested?.Invoke();
37 | }
38 | }
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Ricardo R
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/MauiVlc/Platforms/iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | LSRequiresIPhoneOS
6 |
7 | UIDeviceFamily
8 |
9 | 1
10 | 2
11 |
12 | UIRequiredDeviceCapabilities
13 |
14 | arm64
15 |
16 | UISupportedInterfaceOrientations
17 |
18 | UIInterfaceOrientationPortrait
19 | UIInterfaceOrientationLandscapeLeft
20 | UIInterfaceOrientationLandscapeRight
21 |
22 | UISupportedInterfaceOrientations~ipad
23 |
24 | UIInterfaceOrientationPortrait
25 | UIInterfaceOrientationPortraitUpsideDown
26 | UIInterfaceOrientationLandscapeLeft
27 | UIInterfaceOrientationLandscapeRight
28 |
29 | XSAppIconAssets
30 | Assets.xcassets/appicon.appiconset
31 |
32 |
33 |
--------------------------------------------------------------------------------
/MauiVlc.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.8.34004.107
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MauiVlc", "MauiVlc\MauiVlc.csproj", "{542AFFA8-9C86-436C-9A9B-673D5485C44A}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {542AFFA8-9C86-436C-9A9B-673D5485C44A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {542AFFA8-9C86-436C-9A9B-673D5485C44A}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {542AFFA8-9C86-436C-9A9B-673D5485C44A}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
17 | {542AFFA8-9C86-436C-9A9B-673D5485C44A}.Release|Any CPU.ActiveCfg = Release|Any CPU
18 | {542AFFA8-9C86-436C-9A9B-673D5485C44A}.Release|Any CPU.Build.0 = Release|Any CPU
19 | {542AFFA8-9C86-436C-9A9B-673D5485C44A}.Release|Any CPU.Deploy.0 = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(SolutionProperties) = preSolution
22 | HideSolutionNode = FALSE
23 | EndGlobalSection
24 | GlobalSection(ExtensibilityGlobals) = postSolution
25 | SolutionGuid = {471FD877-7B55-4681-BDA6-BD567D19F297}
26 | EndGlobalSection
27 | EndGlobal
28 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MauiVLC
2 | Comprehensive guide and source code for implementing the VLC Sharp library in .NET Maui applications. This demonstrative project offers an all-encompassing solution for integrating multimedia features into .NET Maui using VLC Sharp. Ideal for .NET developers interested in expanding their skills in audio and video management. Includes code examples and best practices.
3 |
4 | You can read the article through the following link:
5 |
6 | [How to Integrate LibVLCSharp into .NET MAUI for IP Camera Streaming](https://medium.com/@rretamal.dev/how-to-integrate-libvlcsharp-into-net-maui-8dc23b509be4)
7 |
8 | ****
9 |
10 | Guía completa y código fuente para implementar la biblioteca VLC Sharp en aplicaciones .NET Maui. Este proyecto demostrativo ofrece una solución integral para la integración de funciones multimedia en .NET Maui utilizando VLC Sharp. Ideal para desarrolladores de .NET interesados en ampliar sus habilidades en la gestión de audio y video. Incluye ejemplos de código y mejores prácticas.
11 |
12 | Puedes leer el artículo por el siguiente link:
13 |
14 | [Cómo Integrar LibVLCSharp en .NET MAUI](https://medium.com/@rretamal.dev/c%C3%B3mo-integrar-libvlcsharp-en-net-maui-2564576e4765)
15 |
16 | Enjoying the content? Show your support and buy me a coffee by clicking here! /
17 | ¿Te está gustando el contenido? Muestra tu apoyo y cómprame un café haciendo clic aquí.
18 |
19 |
20 |
21 | This project is tested with BrowserStack
22 |
--------------------------------------------------------------------------------
/MauiVlc/Resources/Splash/splash.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/MauiVlc/Resources/AppIcon/appiconfg.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/MauiVlc/Resources/Styles/Colors.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 | #512BD4
8 | #DFD8F7
9 | #2B0B98
10 | White
11 | Black
12 | #E1E1E1
13 | #C8C8C8
14 | #ACACAC
15 | #919191
16 | #6E6E6E
17 | #404040
18 | #212121
19 | #141414
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | #F7B548
35 | #FFD590
36 | #FFE5B9
37 | #28C2D1
38 | #7BDDEF
39 | #C3F2F4
40 | #3E8EED
41 | #72ACF1
42 | #A7CBF6
43 |
44 |
--------------------------------------------------------------------------------
/MauiVlc/Handlers/MediaViewerHandler.Android.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using LibVLCSharp.Platforms.Android;
3 | using LibVLCSharp.Shared;
4 | using MauiVlc.Controls;
5 | using Microsoft.Maui.Handlers;
6 |
7 | namespace MauiVlc.Handlers
8 | {
9 | public partial class MediaViewerHandler: ViewHandler
10 | {
11 | VideoView _videoView;
12 | LibVLC _libVLC;
13 | LibVLCSharp.Shared.MediaPlayer _mediaPlayer;
14 |
15 | protected override VideoView CreatePlatformView() => new VideoView(Context);
16 |
17 | protected override void ConnectHandler(VideoView nativeView)
18 | {
19 | base.ConnectHandler(nativeView);
20 |
21 | PrepareControl(nativeView);
22 | HandleUrl(VirtualView.VideoUrl);
23 |
24 | base.ConnectHandler(nativeView);
25 | }
26 |
27 | private void VirtualView_PlayRequested()
28 | {
29 | PrepareControl(_videoView);
30 | HandleUrl(VirtualView.VideoUrl);
31 | _mediaPlayer.Play();
32 | }
33 |
34 | private void VirtualView_PauseRequested()
35 | {
36 | _mediaPlayer.Pause();
37 | }
38 |
39 | protected override void DisconnectHandler(VideoView nativeView)
40 | {
41 | VirtualView.PauseRequested -= VirtualView_PauseRequested;
42 | nativeView.Dispose();
43 | base.DisconnectHandler(nativeView);
44 | }
45 |
46 | private void PrepareControl(VideoView nativeView)
47 | {
48 | _libVLC = new LibVLC(enableDebugLogs: true);
49 | _mediaPlayer = new LibVLCSharp.Shared.MediaPlayer(_libVLC)
50 | {
51 | EnableHardwareDecoding = true
52 | };
53 |
54 | _videoView = nativeView ?? new VideoView(Context);
55 | _videoView.MediaPlayer = _mediaPlayer;
56 |
57 | VirtualView.PauseRequested += VirtualView_PauseRequested;
58 | VirtualView.PlayRequested += VirtualView_PlayRequested;
59 | }
60 |
61 | private void HandleUrl(string url)
62 | {
63 | try
64 | {
65 |
66 | if (url.EndsWith("/"))
67 | {
68 | url = url.TrimEnd('/');
69 | }
70 |
71 | //url = "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4";
72 |
73 | if (!string.IsNullOrEmpty(url))
74 | {
75 | var media = new Media(_libVLC, url, FromType.FromLocation);
76 |
77 | _mediaPlayer.NetworkCaching = 1500;
78 |
79 | if (_mediaPlayer.Media != null)
80 | {
81 | _mediaPlayer.Stop();
82 | _mediaPlayer.Media.Dispose();
83 | }
84 |
85 | _mediaPlayer.Media = media;
86 | _mediaPlayer.Mute = true;
87 | _mediaPlayer.Play();
88 | }
89 | }
90 | catch (Exception ex)
91 | {
92 | }
93 | }
94 |
95 | }
96 | }
97 |
98 |
--------------------------------------------------------------------------------
/MauiVlc/Handlers/MediaViewerHandler.iOS.cs:
--------------------------------------------------------------------------------
1 | using MauiVlc.Controls;
2 | using Microsoft.Maui.Handlers;
3 | using System;
4 | using LibVLCSharp.Platforms.iOS;
5 | using LibVLCSharp.Shared;
6 |
7 | namespace MauiVlc.Handlers
8 | {
9 | public partial class MediaViewerHandler : ViewHandler
10 | {
11 | VideoView _videoView;
12 | LibVLC _libVLC;
13 | LibVLCSharp.Shared.MediaPlayer _mediaPlayer;
14 |
15 | protected override VideoView CreatePlatformView()
16 | {
17 | return new VideoView();
18 | }
19 |
20 | protected override void ConnectHandler(VideoView nativeView)
21 | {
22 | base.ConnectHandler(nativeView);
23 |
24 | Core.Initialize();
25 |
26 | PrepareControl(nativeView);
27 | HandleUrl(VirtualView.VideoUrl);
28 | }
29 |
30 | protected override void DisconnectHandler(VideoView nativeView)
31 | {
32 | VirtualView.PauseRequested -= VirtualView_PauseRequested;
33 | VirtualView.PlayRequested -= VirtualView_PlayRequested;
34 |
35 | nativeView.Dispose();
36 | base.DisconnectHandler(nativeView);
37 | }
38 |
39 | private void VirtualView_PlayRequested()
40 | {
41 | PrepareControl(_videoView);
42 | HandleUrl(VirtualView.VideoUrl);
43 | _mediaPlayer.Play();
44 | }
45 |
46 | private void VirtualView_PauseRequested()
47 | {
48 | _mediaPlayer.Pause();
49 | }
50 |
51 | public void PrepareControl(VideoView nativeView)
52 | {
53 | _libVLC = new LibVLC(enableDebugLogs: true);
54 | _mediaPlayer = new LibVLCSharp.Shared.MediaPlayer(_libVLC)
55 | {
56 | EnableHardwareDecoding = true
57 | };
58 |
59 | _videoView = nativeView ?? new VideoView();
60 | _videoView.MediaPlayer = _mediaPlayer;
61 |
62 | VirtualView.PauseRequested += VirtualView_PauseRequested;
63 | VirtualView.PlayRequested += VirtualView_PlayRequested;
64 | }
65 |
66 | public void HandleUrl(string url)
67 | {
68 | try
69 | {
70 | if (url.EndsWith("/"))
71 | {
72 | url = url.TrimEnd('/');
73 | }
74 |
75 | if (!string.IsNullOrEmpty(url))
76 | {
77 | var media = new Media(_libVLC, url, FromType.FromLocation);
78 |
79 | _mediaPlayer.NetworkCaching = 1500;
80 |
81 | if (_mediaPlayer.Media != null)
82 | {
83 | _mediaPlayer.Stop();
84 | _mediaPlayer.Media.Dispose();
85 | }
86 |
87 | _mediaPlayer.Media = media;
88 | _mediaPlayer.Mute = true;
89 |
90 | _videoView.MediaPlayer.Play();
91 | }
92 | }
93 | catch (Exception ex)
94 | {
95 | // Handle exception
96 | }
97 | }
98 | }
99 | }
100 |
101 |
--------------------------------------------------------------------------------
/MauiVlc/MauiVlc.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | net8.0-ios;;net8.0-android34.0
4 |
5 |
6 | Exe
7 | MauiVlc
8 | true
9 | true
10 | enable
11 |
12 | MauiVlc
13 |
14 | com.companyname.mauivlc
15 | 69da18e9-1d89-4922-a6d9-e5f3f6b31ab8
16 |
17 | 1.0
18 | 1
19 | 11.0
20 | 21.0
21 |
22 |
23 | false
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/MauiVlc/Resources/Images/dotnet_bot.svg:
--------------------------------------------------------------------------------
1 |
94 |
--------------------------------------------------------------------------------
/MauiVlc/Resources/Styles/Styles.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
10 |
11 |
15 |
16 |
21 |
22 |
25 |
26 |
49 |
50 |
67 |
68 |
88 |
89 |
110 |
111 |
132 |
133 |
138 |
139 |
159 |
160 |
178 |
179 |
183 |
184 |
206 |
207 |
222 |
223 |
243 |
244 |
247 |
248 |
271 |
272 |
292 |
293 |
299 |
300 |
319 |
320 |
323 |
324 |
352 |
353 |
373 |
374 |
378 |
379 |
391 |
392 |
397 |
398 |
404 |
405 |
406 |
--------------------------------------------------------------------------------