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

技术要点解说:

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. 从远端直播服务器推送过来的直播媒体流

转载于:https://www.cnblogs.com/liucy1898/archive/2010/05/20/1740039.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SEO新手入门笔记

2019独角兽企业重金招聘Python工程师标准>>> 上个月公司让我给产品网站做SEO&#xff0c;第一次做这种事情&#xff0c;从中学到一些新东西&#xff0c;在这里做一个总结。 什么是SEO SEO是“搜索引擎优化”的简称&#xff0c;目的是提升网站在搜索引擎结果中的排名…

学习进度(4)

记录时间&#xff1a; 第五周 所花时间&#xff08;包括上课&#xff09; 10h 代码量&#xff08;行&#xff09; 200行 博客量&#xff08;篇&#xff09; 0篇 了解到的知识点 深入学习数据库语句 转载于:https://www.cnblogs.com/quxiangjia/p/10676086.html

linux top 命令的结果

PID&#xff1a;进程标志号&#xff0c;是非零正整数USER&#xff1a;进程所有者的用户名PR&#xff1a;进程的优先级别NI&#xff1a;进程的优先级别数值VIRT&#xff1a;进程占用的虚拟内存值RES&#xff1a;进程占用的物理内存值SHR&#xff1a;进程使用的共享内存值S&#…

从语义开始 – 概念、意义、实践

从语义开始 – 概念、意义、实践http://bbs.blueidea.com/thread-2944769-1-1.html 转载于:https://www.cnblogs.com/javashi/archive/2010/05/21/1741019.html

通过Python脚本理解系统进程间通信

from socket import * #导入socket包中的所有内容from time import ctime #导入time包&#xff0c;同时在本地可使用ctime进行调用import os,sys #导入os&#xff0c;sys包HOSTlocalhost#定义主机PORT21567#定义端口BUFSIZ1024 #定义缓冲区ADDR(HOST,PORT) #定义元组tcpSerSoc…

EnterpriseDB Replication,复制Oracle数据测试(1)

EntepriseDB 复制软件目前支持多种数据库到postgre的复制&#xff0c;其基本结构由发布者(Publication)与订阅者(Subscriptions)组成,Replication软件可针对来自不同类型数据库的多个发布者&#xff0c;将其数据复制到多个订阅者(Subscriptions)数据库中。 其可能的几种拓扑结构…

远程桌面登录 Windows Server 2003时提示无权限

2019独角兽企业重金招聘Python工程师标准>>> 登录时弹出提示&#xff1a;要登录到这台远程计算机&#xff0c;您必须被授予允许通过终端服务登录的权限。默认地&#xff0c;"远程桌面用户"组的成员拥有该权限。如果您不是"远程桌面用户"组或其它…

BZOJ 1845三角形面积并

题目链接&#xff1a;http://www.lydsy.com:808/JudgeOnline/problem.php?id1845 给定100个三角形&#xff0c;求三角形面积并。 戴神模板太可怕。直接调用函数秒掉。思路有点繁琐&#xff0c;不大清楚。贴一个代码。 代码&#xff1a; /* **********************************…

每个大数据工程师都应该知道的OLAP 核心知识点

转载&#xff1a;https://mp.weixin.qq.com/s/I2WqQoGwK7LRrpB4R2pobw 很值得学习的一篇文章&#xff0c;不适用于初学者&#xff0c;适用于中级或者进阶高级的大数据工程师 OLAP 系统广泛应用于 BI, Reporting, Ad-hoc, ETL 数仓分析等场景&#xff0c;本文主要从体系化的角度…

高效便捷地创建单元格数据图表

您能想象折线图、柱状图这些图表被放在一个小小的单元格中的样子吗&#xff1f;Excel 2010的迷你图功能为您提供了这样的便捷体验&#xff0c;让您高效便捷地创建单元格数据图表&#xff01; 1&#xff0e;打开您想要创建迷你图的Excel工作簿&#xff08;如果它是Excel 97-200…

CLR Via CSharp读书笔记(7):常量和字段

{TODO:}转载于:https://www.cnblogs.com/thlzhf/archive/2012/12/06/2805424.html

高并发 高负载 网站系统架构 !深入讨论!【转载】

转载于:https://www.cnblogs.com/ifishing/archive/2010/05/26/1744339.html

聊透分布式系统一致性

一、强一致性 一致性大家庭中&#xff0c;虽然细分种类很多&#xff0c;但是实际上只有两大类&#xff0c;其中之一就是强一致性&#xff0c;其具体包含了严格一致性(也叫原子一致性或者线性一致性)和顺序一致性。 严格(原子/线性)一致性 严格一致性代表着&#xff0c;当数据更…

使用jquery打造一个动态的预览产品颜色效果

在浏览一些电子商务网站的时候&#xff0c;选择一件产品的时候&#xff0c;我们经常会看到点击衣服的颜色&#xff0c;同一件衣服的颜色就会切换&#xff0c;让我们觉得真是比较有意思&#xff0c;这样做的效果给用户的体验比较好&#xff0c;今天就给大家分享一下这种效果的实…

@RequestMapping 和 @GetMapping @PostMapping 区别

RequestMapping 和 GetMapping PostMapping 区别 GetMapping是一个组合注解&#xff0c;是RequestMapping(method RequestMethod.GET)的缩写。 PostMapping是一个组合注解&#xff0c;是RequestMapping(method RequestMethod.POST)的缩写。 转自&#xff1a;https://www.c…

C++ 中的 #pragma warning(push) 和 #pragma warning(pop)有什么用

#pragma warning(push)是保存当前的编译器警告状态&#xff1b; #pragma warning(pop)是恢复原先的警告状态。 例如&#xff1a;rocksdb中的一段代码 #if defined(_MSC_VER) #pragma warning(push) #pragma warning(disable : 4244) # 禁止compiler警告 // varint32编…

关于软件版本命名的方法

当然&#xff0c;这个在这里谈的很多了&#xff0c; 但这里只是说说我们这边用的几种模式&#xff0c; 主要针对发布比较频繁发布的情况&#xff0c;比如两周一次&#xff0c;一个月一次之类的。【一、major.minor】比如1.0, 1.2, 2.5, 3.0等等。 major是主要版本号&#xff0c…

Java Word转Html

最近转换的需求比较多&#xff0c;最近做了一个Word转Html的 这个要导一个包和配置一个文件 1.jacob.jar 2.与jacob.jar相对应的jacob.dll&#xff08;放在windows/sys32下或者放在jre下面&#xff09; 代码 1 packagetest;2 3 importjava.io.File;4 5 importcom.jacob.activeX…

在vue.js引用图片的问题

<div id"img"> <img src"img.png" class"img"> </div> $(".img").attr("src",require("/img.png")); 在vue里在js中引用图片必须加一个require关键字和在图片地址前面加符号 转载于:https://ww…

CreateCompatibleDC

CreatCompatibleDC()创建了一个和当前屏幕的DC兼容的内存DC&#xff08;DC就是设备上下文的意思&#xff0c;设备上下文就是当前的这个窗体的一些属性&#xff0c;譬如说他使用的画刷&#xff0c;画笔等等&#xff09;&#xff0c;在绘制位图的时候&#xff0c;你必须要在内存中…