silverlight2实现播放器的简单原理及其mediaelement的属性介绍
今天尝试在silverlight2中做了个播放器玩玩,对mediaelement有了一些了解,现将起属性贴出来,与大家分享,还有什么我没写到但很重要的或者我写错了的属性欢迎大家补充跟帖。
首先来看看MediaElementState的几种状态,在不同的状态中我们可以设置不同的事件,CurrentStateChanged为状态改变时的触发的事件
Buffering 缓冲,此时可以通过BufferingProgressChanged事件和BufferingProgress值不断获得缓冲的百分比,从而设置进度条
Closed 这个应该是没找到视频文件时的情况
Opening 尝试打开视频资源
Paused 暂停,此时播放的位置(position)不会改变,play后,从此位置开始,但如果设置CanPause为false,则不能暂停
Stopped 停止了
Playing 播放中
AcquiringLicense 仅在播放 DRM 受保护的内容时适用:MediaElement 正在获取播放 DRM 受保护的内容所需的许可证。调用 OnAcquireLicense 后,MediaElement 将保持在此状态下,直到调用了 SetLicenseResponse(msdn)Individualizing 仅在播放 DRM 受保护的内容时适用:MediaElement 正在确保正确的个性化组件(仅在播放 DRM 受保护的内容时适用)安装在用户计算机上(msdn上的)
videomedia.IsMuted设置是否静音,volume控制声音的大小,最大为1 最小为0 默认为0.5,此时可以用silder来控制声音的大小
播放的进度也可以用silder来控制,在mediaelement中Position表示播放的位置(点),此位置可以通过timespan来设置此属性的值。当silder拖动的时候,计算其在silder中所占的比例,然后与NaturalDuration.TimeSpan.Ticks相乘,得到一个long型的数字,在通过new timespan(ticks)设置播放的位置就可以达到效果了(达到哈)。另外通过NaturalDuration可以得到播放的时间长度,通过此属性可以设置播放多长事件,剩余多长时间等。
这样,一个基本的视频播放器就出来了,后面的功能就可以自己慢慢完善了。
附一个微软官方的播放器效果,可以下载下来自己加上视频看演示效果:http://www.slcenter.cn/show_36.aspx,