码迷,mamicode.com
首页 > 其他好文 > 详细

uwp开发:Slider控件和MediaElement绑定,实现拖动播放。

时间:2016-07-10 12:25:49      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

 

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追梦圆

uwp开发:Slider控件和MediaElement绑定,实现拖动播放。

标签:

原文地址:http://www.cnblogs.com/wpali/p/5657389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!