当前位置: 首页 > article >正文

WPF 使用LibVLCSharp.WPF实现视频播放、停止、暂停功能

使用LibVLCSharp.WPF实现视频播放、停止、暂停功能

1, NuGet 添加 VideoLAN.LibVLC.Windows

2. NuGet 添加 LibVLCSharp.WPF

3. wpf 代码如下:

 <Grid >
     <Grid.RowDefinitions>
         <RowDefinition Height="*" />
         <RowDefinition Height="40" />
         <!-- <RowDefinition Height="40" /> -->
     </Grid.RowDefinitions>
     <wpf:VideoView Name="VlcControl" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
     <StackPanel  Grid.Row="1" Orientation="Horizontal">
     <Button   Content="播放" Click="Play_OnClick"></Button>
     <Button   Content="停止" Click="Stop_OnClick"  Width="80"></Button>
     <Button   Content="暂停"  Click="Pause_OnClick"  Width="80"></Button>
     </StackPanel>
 </Grid>

4.  .cs代码如下:

    public partial class MainWindow : Window
    {
        private LibVLC _libVLC;
        private MediaPlayer _mediaPlayer;
        public MainWindow()
        {
            InitializeComponent();

            Core.Initialize();// 初始化 LibVLC
            _libVLC = new LibVLC();
            _mediaPlayer = new MediaPlayer(_libVLC);
            VlcControl.MediaPlayer = _mediaPlayer;
        }

        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            //取整设置成刚好的网格大小
          
        }

        private void PlayOrPauseButton_Checked(object sender, RoutedEventArgs e)
        {
            this.Play();
        }

        private void PlayOrPauseButton_Unchecked(object sender, RoutedEventArgs e)
        {
            
        }

        private void Play()
        {
            //调用Play()时,MediaElement会将其Position设置为0
            if (_mediaPlayer.State == VLCState.Paused)
            {
                var oldTime = _mediaPlayer.Time;
                _mediaPlayer.Play();
                _mediaPlayer.Time = oldTime;
            }
            else
            {
                string filePath = @"E:\1.avi";
                _mediaPlayer.Play(new Media(_libVLC, new Uri(filePath, UriKind.RelativeOrAbsolute)));
            }

        }

       private void Stop_OnClick(object sender, RoutedEventArgs e)
       {
            _mediaPlayer.Stop();
       }

       private void Pause_OnClick(object sender, RoutedEventArgs e)
       {
            _mediaPlayer.Pause();
       }

       private void Play_OnClick(object sender, RoutedEventArgs e)
      {
            Play();
      }
    }


http://www.kler.cn/a/442603.html

相关文章:

  • 【WEB】网络传输中的信息安全 - 加密、签名、数字证书与HTTPS
  • 【声音场景分类--论文阅读】
  • thinkphp 5.0 结合redis 做延迟队列,队列无法被消费
  • Android SDK下载安装(图文详解)
  • uniApp通过xgplayer(西瓜播放器)接入视频实时监控
  • ubuntu官方软件包网站 字体设置
  • 【排序算法】——插入排序
  • .Net Core注册一个定制任务执行类服务
  • 首屏加载慢问题
  • 备战秋招:2024游戏开发入行与跳槽面试详解
  • 智能移动交通执法方案:易泊车牌识别相机助力精准执法与数据驱动管理
  • HCIA-Access V2.5_3_3_2_VLAN路由配置与实现
  • 机器学习之偏差
  • Shadcn UI 实战:打造可维护的企业级组件库
  • 简单配置,全面保护:HZERO审计服务让安全触手可及
  • 2412d,d的8月会议
  • Unity超优质动态天气插件(含一年四季各种天气变化,可用于单机局域网VR)
  • 【ETCD】【源码阅读】深入解析 EtcdServer.applyConfChange 方法
  • Web网络通信 --- 后端消息推送
  • Bootstrap 表格
  • 在 Ubuntu 中启用 root 用户的远程登录权限
  • 云连POS-ERP管理系统 download.action存在任意文件读取漏洞
  • 国产之光:KylinOS/麒麟系统安装
  • 挑战一个月基本掌握C++(第五天)了解运算符,循环,判断
  • 【C++】继承和派生(超级详细版)
  • SpringAI人工智能开发框架003---SpringAI智能聊天程序编写_Msg_Prompt_Stream方式_指定调用模型版本