uwp开发:Slider控件和MediaElement绑定,实现拖动播放.
来源:互联网 发布:浴霸松下奥普 知乎 编辑:程序博客网 时间:2024/05/16 08:58
1、实现原理:
Slider拖动时,Value值改变,MediaElement播放时,Position值改变。所以,只需将Slider的Value属性和MediaElement的Position属性进行绑定即可。
2、实现方法:
Slider的Value属性是double类型的,而MediaElement的Position属性是Timespan类型的,要绑定这两种不同类型的的话,就要用到Converter了,即值转换器。关于值转换器,可以百度,或者看IT追梦圆我写的这篇文章:数据绑定——值转换器 的简单使用。
3、实现过程:
写一个值转换器类:
class MusicConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { return ((TimeSpan)value).TotalSeconds; } public object ConvertBack(object value, Type targetType, object parameter, string language) { return TimeSpan.FromSeconds((double)value); } }
这里注意的是,我是在Slider的Value属性上绑定Position的,这样的话,这个Value就是TimeSpan类型的,我们将它转为double类型,所以直接返回它的TotalSeconds,即总秒数即可。
下来,回到View界面:实现如下绑定。
到这里,还没完,因为我们需要将Slider的Value值和MediaElement播放的总秒数对应起来,这样才能实现百分比进度。所以,需要获取媒体播放的总时长,要注意的是,播放时长需要在MediaElement的MediaOpened事件中获取,因为在这个事件触发之前,系统是获取不到播放时长的。在该事件中将Slider的Maximum和播放总时间对应起来即可。
private void me_MediaOpened(object sender, RoutedEventArgs e) { sld.Maximum = me.NaturalDuration.TimeSpan.TotalSeconds; }
这样绑定就完成了。拖动Slider,实现播放相应进度。喜欢uwp开发的同学可加群:193148992 共同学习交流。
——IT追梦圆
0 0
- uwp开发:Slider控件和MediaElement绑定,实现拖动播放.
- win10 uwp 拖动控件
- win10 uwp 获得Slider拖动结束的值
- 【UWP通用应用开发】集合控件与数据绑定
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- win10 uwp InkCanvas控件数据绑定
- PictureBox控件作播放时间进度条演示,不会闪烁,并且和Slider控件同步
- wpf 开发中的slider控件
- 用WPF控件MediaElement创建简易播放器(视频区域、播放控制区域、播放列表、循环播放)
- 用WPF控件MediaElement创建简易播放器(视频区域、播放控制区域、播放列表、循环播放)
- 控制 MediaElement(播放、暂停、停止、音量和速度)
- mfc 对话框 toolBox 中的控件 edit control和slider control 或 spin control 使用并绑定
- MediaElement在UWP全屏中的bug
- c++学习笔记6
- sdut oj面向对象程序设计上机练习九(对象指针)
- Android之---两种自定义开关(ToggleButton)的实现(代码实现和图片实现)
- 友盟--第三方登录
- c++的异常处理
- uwp开发:Slider控件和MediaElement绑定,实现拖动播放.
- JQuery
- 计算机网络-IP数据报格式
- 【VPN】-初识VPN
- wifi基础
- 蓝桥杯练习题Java实现 入门训练 Fibonacci数列
- c++的泛型编程与模板
- python super
- 第27篇 webrtc-IOS之运行测试用例及代码部署到设备