第11讲:多媒体播放器开发
2010.11.11 苏鹏
内容介绍
- 使用Silverlight中的Elements对象
- 比较Silverlight和Flash中恩对video对象
- 制作播放器
预备知识
- 安装Visual Studio 2010
- 安装Expression Blend4
- 安装Silverlight tools for Visual Studio 2010
富媒体播放器
- 视频和音频载体MediaElement
支持格式
两种播放
- Flash还是Silverlight?
在国内很少有实时视频采集的需要,基本上都是录播,Flash在录播上就相对有优势。首先Flash的客户端非常普及,然后Flash相对压缩比例比Silverlight高,在网络状态不太好的情况,Silverlight占用的带宽要比Flash大,如果带宽不足,最好还是选择Flash。
Silverlight特性
- 更好的压缩比
- 无需额外解码器
- 内建DRM支持
- Smooth Streaming技术
- IIS插件支持HD(720P)
- 更多格式支持
内建DRM是指把视频的版权声明和认证做到视频源内部,当打开视频的时候可以看到认证的信息,可以要求用户必须输入用户名和密码认证之后才能观看视频。
Smooth Streaming是必须和IIS7及以上版本绑定的技术,它可以在浏览器侦测你计算机的性能,然后根据当前网络情况和计算机硬件设备来切换不同的视频源,这样做的好处是对同一个视频推送不同的视频效果。
Flash特点
- 客户端广泛
- 对CPU占用少
- 广泛的编码方式支持转换成为FLV
- Mobile Video支持
创建一个播放器
- 使用xml数据源
- 支持拖拽文件操作
- 单件模式的数据工厂
- 更多视觉效果
Demo
- 一个视频播放器
自定义控件
单件模式工厂
VideoData
XmlRoot用来Match Xml文件
MainPage
如果是在其他服务器,拿WebClient是下载不下来的,因为有跨域问题。即使是在本服务器上想调用本服务器的文件,调用它的选择方式也是选择使用WebClient下载。这里使用异步方式下载并打开xml。
xmlData是取得的数据,数据是纯字符串,这里读到的VideoData因为是使用单件模式,所以全局都只有一个,避免了重复加载的问题。
MouseDragElementBehavior是Silverlight新特性,鼠标拖动事件,把它Attach到控件之后,这个控件就可以实现鼠标拖拽的操作了。
MainPage里面的MediaElement控件
运行结果
拖拽视频进来之后,就播放拖拽进来的视频
当拿到一个wmv视频文件的时候,如果我们想在Silverlight中播放,需要先用MicrosoftExpressionEncoder把它格式化。
+号可以自定义一些带宽的视频,是为了Smooth技术用
Encode编码
总结
- 使用Silverlight中的Elements对象
- 比较Silverlight和Flash中恩对video对象
- 制作播放器
2010.12.1