当前位置:   article > 正文

Avalonia学习(十八)-LibVLC(视频播放)_avalonia nativecontrolhost vlc

avalonia nativecontrolhost vlc

今天开始继续Avalonia练习。

本节:LibVLC

1.引入

  1. Dove.Avalonia.Extensions.Media;
  2. VideoLAN.LibVLC.Windows

2.项目引入

前台代码

  1. <Window xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:vm="using:PlayerAvalonia.ViewModels"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
  7. x:Class="PlayerAvalonia.Views.MainWindow"
  8. x:DataType="vm:MainWindowViewModel"
  9. Icon="/Assets/avalonia-logo.ico"
  10. Title="PlayerAvalonia">
  11. <Design.DataContext>
  12. <!-- This only sets the DataContext for the previewer in an IDE,
  13. to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) -->
  14. <vm:MainWindowViewModel/>
  15. </Design.DataContext>
  16. <Grid RowDefinitions="30,*">
  17. <Button Content="测试" Click="Button_Click" Grid.Row="0"/>
  18. <PlayerView x:Name="playerView" Grid.Row="1"/>
  19. </Grid>
  20. </Window>

后台代码

  1. using Avalonia.Controls;
  2. using Avalonia.Extensions.Media;
  3. using Avalonia.Platform.Storage;
  4. using LibVLCSharp.Shared;
  5. using System.IO;
  6. namespace PlayerAvalonia.Views
  7. {
  8. public partial class MainWindow : Window
  9. {
  10. public MainWindow()
  11. {
  12. InitializeComponent();
  13. }
  14. private void Button_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
  15. {
  16. var topLevel = TopLevel.GetTopLevel(this);
  17. // 启动异步操作以打开对话框。
  18. var files = topLevel.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions
  19. {
  20. Title = "Open Text File",
  21. AllowMultiple = false
  22. }).Result;
  23. //var files = await storage.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions()
  24. //{
  25. // Title = title,
  26. // //您可以添加自定义文件类型,也可以从内置文件类型添加。请参阅“定义自定义文件类型”,了解如何创建自定义文件类型。
  27. // FileTypeFilter = new[] { ImageAll, FilePickerFileTypes.TextPlain }
  28. //});
  29. if (files.Count > 0)
  30. {
  31. PlayerView VideoView = this.FindControl<PlayerView>("playerView");
  32. VideoView.Play(files[0].Path);
  33. }
  34. }
  35. }
  36. }

运行效果

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号