关于ASF文件的编程!

oldjackyone 2002-10-31 10:50:38
在WEB上,从数据库里一条条读取视频与祝福语的记录,使记录与视频同步,

请问可不可以实现啊,如果可以的话,该如何去做。可以告知吗?
...全文
55 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2002-10-31
  • 打赏
  • 举报
回复
可以的,请参照msdn的media player sdk部分
Go_Rush 2002-10-31
  • 打赏
  • 举报
回复
你应该考虑的问题:

1。你需要取得视频的总长度
2。你还要知道数据库中关于该视频的所有祝福语纪录的条数。
3。你需要随时知道当前视频播放到什么位置了,播放了百分之几十?
还剩下多少没有播放?
4。根据上面的三条去决定怎么显示祝福语,在什么时候以什么速度显示?
是连着显示(当然要控制显示速度),还是每隔一段时间显示一条?


呵呵,看上去挺麻烦的,其实很简单,我想我可以给你这样几条建议:

先看播放代码:

<OBJECT id=Player1
typE="application/x-oleobject" classid=CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6 VIEWASTEXT>
<PARAM NAME="URL" VALUE="http://你要播放的媒体文件">
<PARAM NAME="rate" VALUE="1">
<PARAM NAME="defaultFrame" VALUE="">
<PARAM NAME="playCount" VALUE="1">
<PARAM NAME="autoStart" VALUE="-1">
<PARAM NAME="currentMarker" VALUE="0">
<PARAM NAME="invokeURLs" VALUE="-1">
<PARAM NAME="baseURL" VALUE="">
<PARAM NAME="volume" VALUE="100">
<PARAM NAME="mute" VALUE="0">
<PARAM NAME="uiMode" VALUE="none">
<PARAM NAME="stretchToFit" VALUE="0">
<PARAM NAME="windowlessVideo" VALUE="0">
<PARAM NAME="enabled" VALUE="-1">
<PARAM NAME="enableContextMenu" VALUE="1">
<PARAM NAME="fullScreen" VALUE="0">
<PARAM NAME="SAMIStyle" VALUE="">
<PARAM NAME="SAMILang" VALUE="">
<PARAM NAME="SAMIFilename" VALUE="">
<PARAM NAME="captioningID" VALUE="">
</OBJECT>

<button onclick="Player1.controls.play();">播放</button>
<button onclick="Player1.controls.pause();">暂停</button>
<button onclick="Player1.controls.stop();">停止</button>


1。你需要取得视频的总长度
alert(Player1.currentMedia.duration) //单位是秒,这是一个只读属性

2。你还要知道数据库中关于该视频的所有祝福语纪录的条数。
select count(*) from .... 这个应该很简单

3。你需要随时知道当前视频播放到什么位置了,播放了百分之几十?
还剩下多少没有播放?
alert(Player1.controls.currentPosition)
这个属性可以读写,单位是秒,它能告诉你你的视频现在已经播放了多少秒了

4。根据上面的三条去决定怎么显示祝福语,在什么时候以什么速度显示?
是连着显示(当然要控制显示速度),还是每隔一段时间显示一条?
前面3条都搞定了,下面的就简单了。
假设你的这个asf文件总共要播放1分钟,现在有10条祝福的话,
你可以选择在 6,12,18,24,30,36,42,48,54,60秒播放
在asp代码中,把所有的祝福语都存在客户端js数组中,
var arrWord=new Array();
arrWord[0]="祝福1"
arrWord[1]="祝福2"
.......
arrWord[9]="祝福10"

然后当视频开始 播放的时候启动一个计数器。
vat t=setTimeout("count()",1000)
只要在count()函数里面判断当前播放的位置就可以了
if (parseInt(Player1.controls.currentPosition.toString()) % 6==0){显示数组中相应的内容}



呵呵,说多了,思路是这样的,具体实现我也没有那么多时间帮你写出来,
自己慢慢琢磨把

28,408

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧