第11讲:多媒体播放器开发

2010.11.11 苏鹏

内容介绍

- 使用Silverlight中的Elements对象

- 比较Silverlight和Flash中恩对video对象

- 制作播放器

 

预备知识

- 安装Visual Studio 2010

- 安装Expression Blend4

- 安装Silverlight tools for Visual Studio 2010

 

富媒体播放器

- 视频和音频载体MediaElement

 

支持格式

image

 

两种播放

- 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

- 一个视频播放器

image

image

自定义控件

image

image

单件模式工厂

image

image

VideoData

image

XmlRoot用来Match Xml文件

image

MainPage

image

如果是在其他服务器,拿WebClient是下载不下来的,因为有跨域问题。即使是在本服务器上想调用本服务器的文件,调用它的选择方式也是选择使用WebClient下载。这里使用异步方式下载并打开xml。

image

xmlData是取得的数据,数据是纯字符串,这里读到的VideoData因为是使用单件模式,所以全局都只有一个,避免了重复加载的问题。

image

image

MouseDragElementBehavior是Silverlight新特性,鼠标拖动事件,把它Attach到控件之后,这个控件就可以实现鼠标拖拽的操作了。

image

image

MainPage里面的MediaElement控件

image

运行结果

imageimage

拖拽视频进来之后,就播放拖拽进来的视频

image

 

当拿到一个wmv视频文件的时候,如果我们想在Silverlight中播放,需要先用MicrosoftExpressionEncoder把它格式化。

image

image

image

+号可以自定义一些带宽的视频,是为了Smooth技术用

image

Encode编码

image

 

总结

- 使用Silverlight中的Elements对象

- 比较Silverlight和Flash中恩对video对象

- 制作播放器

2010.12.1

posted @ 2010-12-01 22:46  山天大畜  阅读(2261)  评论(0编辑  收藏  举报