使用Microsoft Media Service实现网络影音多媒体应用系列第三篇---技术要点

时间:2022-08-23 13:19:51

技术要点解说:

Media Service的引用

Imports Microsoft.WindowsMediaServices.Interop

Imports System.Runtime.InteropServices

引入以上两个命名空间以后,就可以看到WMSServer这个类,它就是指向Media Service的类。Activator.CreateInstance(tServerType)获取的就是当前开发服务器上的Media Service的实例。

 

PublishPoint播放点

所谓播放点,就是我们在Media Service上可以看到的点播,直播与广播节目。以上三种影音服务方式的特点及异同,后面再讨论。

我们通过上一步骤获取了当前服务器上Media Service实例之后,就可以在它的属性中找到PublishPoints属性,引用的就是已经存在的播放点集合。

播放点对应的类,包括IWMSPublishingPoint,IWMSPublishingPoint2这两个,我们通常只需要使用前一个,后一个如何使用,可以参阅SDK说明。

使用如下语法来添加播放点:

PublishingPoints.Add(PubName,WMS_PUBLISHING_POINT_CATEGORY.WMS_PUBLISHING_POINT_ON_DEMAND, MediaPath)

PublishingPoints.Remove()可以移除一个已经存在的播放点

播放点类型的枚举:

WMS_PUBLISHING_POINT_CATEGORY.WMS_PUBLISHING_POINT_ON_DEMAND

WMS_PUBLISHING_POINT_CATEGORY.WMS_PUBLISHING_POINT_ON_BROADCAST

 

播放列表PlayList概念

所谓播放列表,就是把多个媒体档或播放列表组合嵌套,以一定的顺序,由一个播放点来依次播出。

一个播放列表,实际就是一个XML档,我们这里介绍的播放列表是.wsx,形式如下所示:

<?wsx version = '1.0'?>

<smil>

    <media src="c:\media\自然百科\Butterfly.wmv">

        <clientdata title="myPlaylist" author="Liucy"/>

    </media>

</smil>

除了.wsx播放列表以外,还有一种播放列表,就是.asx,这种播放列表是一种客户端播放列表,形式如下:

<ASX Version = "3.0">

<Entry> <Ref href = "http://server/song1.asf" /> </Entry>

<Entry> <Ref href = "http://server/song2.asf" /> </Entry>

<Entry> <Ref href = "http://server/song3.asf" /> </Entry>

<Entry> <Ref href = "http://server/song4.asf" /> </Entry>

</ASX>

这种播放列表,是随页面加载到客户端以后,由客户端播放插件或完整播放器来使用。从这一点来看.wsx就是服务器端播放列表。

 

备注:关于播放列表的具体语法,请参阅Media Service SDK

 

播放列表如何在开发中使用:

Imports interop_msxml

必须引入以上命名空间,播放列表相关类,如下:

Dim Playlist As IXMLDOMDocument

Dim ElementSmil As IXMLDOMElement

Dim ElementMedia As IXMLDOMElement

Dim ElementClientData As IXMLDOMElement

Dim ProcInst As IXMLDOMNode

Dim Root As IXMLDOMNode

Dim Node As IXMLDOMNode

 

新建播放列表:

MediaService实例.CreatePlaylist()

播放列表实例创建以后,我们就可以把它作为一个普通的XML档一样来操作。

播放列表可以像一个普通媒体档一样作为播放点的节目来源。

关于播放点的节目来源分类:

  1. 本机普通媒体档,注意必须是.wmv/.wma/.avi这些微软专有媒体格式才可以
  2. 播放列表
  3. 局域网内其他位置具有相应访问权限的档案
  4. 以Http协议从Internet获取远端媒体流
  5. 从远端直播服务器推送过来的直播媒体流