您的位置:首页 > 其它

基于WMS9SDK的插件开发

2009-03-05 14:14 281 查看
最近一段时间一直在研究wms,因为大多数流媒体平台都离不开它,当然helix也不错!
WMS 即windows media services ,是微软提供的搭建流媒体平台的服务,主要支持mms协议,当然9 系列也支持rtsp协议,有很多优点,不在这一一讲解。这里主要阐述基于 Windows Media Services系列9SDK和 .NET 框架定制插件程序的一些关键内容。
其实现步骤主要分为:
一.创建“类库(Class Library)”项目
二.“添加引用”到“Windows Media Services Server Object Model and Plugin 9.0 Type Library”
三.实现接口IWMSBasicPlugin
四.实现特定插件类型的接口(如IWMSEventNotificationPlugin, IWMSCacheProxy),甚至更多如认证插件和监控插件的接口等。

其中的几个重要接口:
一.IWMSBasicPlugin接口:
DisablePlugin
EnablePlugin
GetCustomAdminInterface
InitializePlugin
OnHeartbeat
ShutdownPlugin
二.IWMSEventNotificationPlugin接口:
GetHandledEvents ()
OnEvent(ref WMS_EVENT Event,
IWMSContext UserCtx,
IWMSContext PresentationCtx,
IWMSCommandContext CommandCtx )
三. IWMSContext接口:
GetAndQueryIUnknownValue,
GetArrayValue,
GetContextType,
GetDateValue,
GetIndexedValue,
GetIUnknownValue,
GetLongValue,
GetQwordValue,
GetStringValue,
GetValue,
GetValueCount
SetArrayValue,
SetDateValue,
SetIUnknownValue,
SetLongValue,
SetQwordValue,
SetStringValue,
SetValue
RemoveAllValues,
RemoveValue
EraseCommandRequest
EraseCommandResponse
GetCommandRequest
GetCommandResponse
GetPlaylistGenerationID
SetPlaylistGenerationID

Contexts 指名称/值对的集合,同http. 它是由WMS创建,并传给插件,用于插件运作需要的大部分信息,其值大部分由WMS写入,插件可以读/写值
不同类型的Contexts
一.Server Context
描述全局的WMS状态
WMS_SERVER_DOMAIN_NAME
WMS_SERVER
WMS_SERVER_EVENT_LOG
二.User Context
描述单一用户
WMS_USER_AGENT
WMS_USER_NAME
WMS_USER_IP_ADDRESS
三.Presentation Context
描述单一的数据路径(Data Path)
WMS_PRESENT_REQUEST_NAME
WMS_PRESENT_PHYSICAL_NAME
WMS_PRESENT_PLAYLIST_ENTRY_ROLE
四.Command Context
描述单一的用户请求(User Request)
WMS_COMMAND_CONTEXT_EVENT
WMS_COMMAND_CONTEXT_URL
WMS_COMMAND_CONTEXT_URL_EXTRAINFO
WMS_COMMAND_CONTEXT_PUBPOINT_NAME

以上是对WMS插件开发的一些总结,因为发现在开发中寻找这方面的资料简直屈指可数,甚至MSDN和CSDN。我相信2007年将是流媒体平台快速发展的一年,因此有这方面的资料指导简直太可贵了。
另外关于WMS服务器监控的一些东东也有相关的SDK,有兴趣的可以看看WMI和WPSDK。都是有帮助的!

技术资源
WMS SDK 技术信息: http://msdn.microsoft.com/windowsmedia 下载WMS SDK : http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: