分享
 
 
 

利用Helix Server的SMIL支持在ASP中生成媒体流的播放列表

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

开发视频点播网站时或许会需要连续播放一系列流媒体文件,我的经验是可以使用SMIL语言动态生成需要的播放列表文件。以下将对这种方法作出说明。我感觉这并不是一个很好的方法,但可作为一种思路供大家参考。

首先我们应该了解一下SMIL语言的结构。SMIL是专用于流媒体服务器的一种语言,它是符合XML语言规范的。以下是一个典型的用于Helix Server的SMIL文件:

113.smi

--------------

<smil>

<head>

<meta name="title" content="连续播放"/>

<meta name="author" content="C.C在线视听娱乐网 - C.C.M.C."/>

<meta name="copyright" content="网站所有资源版权归其原作者所有,请于下载试用后24小时内删除"/>

</head>

<body>

<par>

<ref src="rtsp://192.168.0.100/D/200485627_24.mp3" title="Whos Who"/>

</par>

<par>

<ref src="rtsp://192.168.0.100/D/200485624_22.mp3" title="Two-Lane Blacktop"/>

</par>

<par>

<ref src="rtsp://192.168.0.100/D/200485618_20.mp3" title="The Wonders of You"/>

</par>

</body>

</smil>

<head>内的title是指显示在RealPlayer播放机播放列表最上部的标题。author是作者,copyright是版本信息,这些信息可以在点击RealPlayer跑马灯字幕的时候看到。<par>内的<ref>中,scr指的是流媒体文件的位置,title是指此媒体显示在播放列表中的名称。每个<par>定义一个文件,这样就实现媒体流的连续播放。使用这种办法还能很方便的向网站中的媒体文件添加广告或自定义片头片尾。知道文件结构剩下的就好办了。不过注意生成smi文件之前先对字符进行过滤,因为XML中有些字符是不能随意出现的。

代码例:

其中有几个自定义函数不多作介绍(GetExtName为获取文件扩展名)

xRMExtNames="rm,ram,rmvb,mp3,mpeg,mpa"

rmPlayList="smil/a.smi"

Sub WritePlayListRM

dim strTmpSrc,sql

Set fso = CreateObject("Scripting.FileSystemObject")

Set tf = fso.CreateTextFile(server.MapPath(rmPlayList) , True)

tf.WriteLine("<smil>")

tf.WriteLine("<head>")

tf.WriteLine("<meta name=" & chr(34) & "title" & chr(34) & " content=" & chr(34) & XMLFilter(strQuery) & chr(34) & "/>")

tf.WriteLine("<meta name=" & chr(34) & "author" & chr(34) & " content=" & chr(34) & XMLFilter(xSiteName) & chr(34) & "/>")

tf.WriteLine("<meta name=" & chr(34) & "copyright" & chr(34) & " content=" & chr(34) & XMLFilter(xCopyRight) & chr(34) & "/>")

tf.WriteLine("</head>")

tf.WriteLine("<body>")

set rsServer=Server.CreateObject("ADODB.Recordset")

do while not rs.eof

if instr(xRMExtNames,lcase(GetExtName(rs("fileName"))))>0 then

sql="select * from site_servers where UID=" & rs("serverID")

rsServer.open sql,conn,1,1

strTmpSrc=rsServer("RMServer") & rs("fileName")

tf.WriteLine("<par>")

tf.WriteLine("<ref src=" & chr(34) & strTmpSrc & chr(34) & " title=" & chr(34) & XMLFilter(rs("title")) & chr(34) & "/>")

tf.WriteLine("</par>")

rsServer.close

rmNum=rmNum+1

end if

rs.movenext

loop

rs.movefirst

tf.WriteLine("</body>")

tf.WriteLine("</smil>")

tf.Close

set tr=nothing

set rsServer=nothing

End Sub

Function XMLFilter(strInput)

XMLFilter=replace(strInput,"<","(")

XMLFilter=replace(XMLFilter,">",")")

XMLFilter=replace(XMLFilter,chr(34),"")

XMLFilter=replace(XMLFilter,"'","")

End Function

这就是我的方法,欢迎大家批评指正。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有