欢迎光临
我们一直在努力

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

建站超值云服务器,限时71元/月

开发视频点播网站时或许会需要连续播放一系列流媒体文件,我的经验是可以使用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

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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 利用Helix Server的SMIL支持在ASP中生成媒体流的播放列表-ASP教程,ASP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章