WPF+LibVLC开辟播放器-播放时间显示

打印 上一主题 下一主题

主题 897|帖子 897|积分 2691

界面

增加一个TextBlock用于时间显示
  1. <TextBlock
  2.     Name="TimeText"
  3.     Grid.Row="1"
  4.     Margin="131,0,0,9"
  5.     HorizontalAlignment="Left"
  6.     VerticalAlignment="Bottom"
  7.     Text="TextBlock"
  8.     TextWrapping="Wrap" />
复制代码

代码

给MediaPlayer增加一个时间变化事件TimeChanged
  1. public partial class MainWindow : Window
  2. {
  3.     private LibVLC _libVLC;
  4.     private MediaPlayer _player;
  5.     public MainWindow()
  6.     {
  7.         InitializeComponent();
  8.         Core.Initialize();
  9.         _libVLC = new LibVLC();
  10.         _player = new MediaPlayer(_libVLC);
  11.         //时间变化事件
  12.         _player.TimeChanged += Player_TimeChanged;
  13.         
  14.         videoView.MediaPlayer = _player;
  15.       
  16.     }
  17.    
  18. }
  19. private void Player_TimeChanged(object? sender, MediaPlayerTimeChangedEventArgs e)
  20. {
  21. }
复制代码
相关属性介绍


  • Time属性,获取当前播放时间

    • 类型:long
    • 单位:ms
    • 设置Time属性可以修改当前播放进度

  • Length属性,当前视频总的时长

    • 类型:long
    • 单位:ms
    • 只读

实现

通过TimeSpan.FromMilliseconds对time和length属性进行转换,然后转成对应的string格式
需要注意的是这个事件是线程中调用,修改控件需要跨线程调用,需要this.Dispatcher.Invoke来处置惩罚
  1. private void Player_TimeChanged(object? sender, MediaPlayerTimeChangedEventArgs e)
  2. {
  3.    Dispatcher.Invoke(
  4.        new Action(() =>
  5.        {
  6.       TimeText.Text =
  7.            TimeSpan.FromMilliseconds(_player.Time).ToString(@"hh\:mm\:ss")
  8.            + "/"
  9.            + TimeSpan.FromMilliseconds(_player.Length).ToString(@"hh\:mm\:ss");//总长
  10.            
  11.        })
  12.    );
  13. }
复制代码
实现效果


视频教程


     WPF+LibVLC开辟播放器-时间进度显示
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表