界面
增加一个TextBlock用于时间显示
- <TextBlock
- Name="TimeText"
- Grid.Row="1"
- Margin="131,0,0,9"
- HorizontalAlignment="Left"
- VerticalAlignment="Bottom"
- Text="TextBlock"
- TextWrapping="Wrap" />
复制代码
代码
给MediaPlayer增加一个时间变化事件TimeChanged
- public partial class MainWindow : Window
- {
- private LibVLC _libVLC;
- private MediaPlayer _player;
- public MainWindow()
- {
- InitializeComponent();
- Core.Initialize();
- _libVLC = new LibVLC();
- _player = new MediaPlayer(_libVLC);
- //时间变化事件
- _player.TimeChanged += Player_TimeChanged;
-
- videoView.MediaPlayer = _player;
-
- }
-
- }
- private void Player_TimeChanged(object? sender, MediaPlayerTimeChangedEventArgs e)
- {
- }
复制代码 相关属性介绍
- Time属性,获取当前播放时间
- 类型:long
- 单位:ms
- 设置Time属性可以修改当前播放进度
- Length属性,当前视频总的时长
实现
通过TimeSpan.FromMilliseconds对time和length属性进行转换,然后转成对应的string格式
需要注意的是这个事件是线程中调用,修改控件需要跨线程调用,需要this.Dispatcher.Invoke来处置惩罚
- private void Player_TimeChanged(object? sender, MediaPlayerTimeChangedEventArgs e)
- {
- Dispatcher.Invoke(
- new Action(() =>
- {
- TimeText.Text =
- TimeSpan.FromMilliseconds(_player.Time).ToString(@"hh\:mm\:ss")
- + "/"
- + TimeSpan.FromMilliseconds(_player.Length).ToString(@"hh\:mm\:ss");//总长
-
- })
- );
- }
复制代码 实现效果
视频教程
WPF+LibVLC开辟播放器-时间进度显示
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |