在线听歌客户端脚本的问题?不能连续播放。附代码。

yanzilisan18 2004-10-15 05:51:30
<Script Language=VBScript>
Dim OS,PS,AutoChange
Sub TitleLst_OnChange()
WMPlay.FileName="rtnurl.asp?fid="&TitleLst.value
gecishow.location.href="geci.asp?fid="&TitleLst.value
' msgbox "下一首。。。"
WMPlay.Play
End Sub

Sub PlayStateChange()
IF WMPlay.OpenState=6 AND WMPlay.PlayState=0 AND OS=6 AND PS=3 Then
'下一首
IF TitleLst.SelectedIndex<TitleLst.Options.Length-1 Then
TitleLst.SelectedIndex=TitleLst.SelectedIndex+1
Call TitleLst_OnChange()
ElseIF TitleLst.SelectedIndex>=TitleLst.Options.Length-1 AND Cycle.Checked Then
TitleLst.SelectedIndex=0
Call TitleLst_OnChange()
End IF
End IF
OS=WMPlay.OpenState
PS=WMPlay.PlayState
End Sub
</Script>
<SCRIPT Language ="JScript" FOR="WMPlay" EVENT="PlayStateChange(ns)">PlayStateChange();</SCRIPT>
</head>
<IFRAME name=gecishow frameborder="no" height=115 width=100% scrolling="auto" allowTransparency="true" src="about:blank"></IFRAME>
<input name="Cycle" type="checkbox" class="input1">循环</td>
当前曲:<Select name="TitleLst" class="input1">
<option value="611">只要有你
<option value="610">只要你好
<option value="609">真情真美
</Select>
<OBJECT id="WMPlay" name="WMPlay" width=100% height=45 CLASSID="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95" Codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" standby="Loading Microsoft? Windows Media? Player components..." type="application/x-oleobject">
<param name="autoStart" value="true">
<param name="balance" value="0">
<param name="currentPosition" value="0">
<param name="currentMarker" value="0">
<param name="enableContextMenu" value="false">
<param name="enableErrorDialogs" value="false">
<param name="enabled" value="true">
<param name="fullScreen" value="false">
<param name="invokeURLs" value="false">
<param name="mute" value="false">
<param name="playCount" value="1">
<param name="rate" value="1">
<param name="uiMode" value="none">
<param name="volume" value="60">
</OBJECT>
<Script Language=VBScript>
gecishow.location.href="geci.asp?fid="&TitleLst.value
self.focus()
TitleLst_OnChange()
</Script>

这是一个在线听歌的部分代码,主要用VBS完成。
问题出在当播完第一首歌之后不能自动播放下一首歌曲,但WMPlay.FileName已经读入了下一首歌的地址并且播放器已经准备完毕。好像只差了个WMPlay.Play,但我只要取消下面行的注释就不会有问题。
' msgbox "下一首。。。"
也就是说在播放之前弹出对话框,播放器就可以连续播放,而不管你按没按过确定。

是不是说由于对话框的弹出阻止了WMPlay.Play的执行,而由播放器AutoStart呢?
搞不定了,高手帮忙吧。

QQ:7162943
...全文
146 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanzilisan18 2004-10-15
  • 打赏
  • 举报
回复
已经搞定了,只是状态处理逻辑出了点问题。应该在播放器关闭之前,也就是说在播完一首歌后,偿试寻找下一首歌时改变其FileName属性。
修改后的代码如下:
<Script Language=VBScript>
Dim OS,PS
Sub TitleLst_OnChange()
WMPlay.FileName="rtnurl.asp?fid="&TitleLst.value
gecishow.location.href="geci.asp?fid="&TitleLst.value
End Sub

Sub PlayStateChange()
IF WMPlay.OpenState=6 AND WMPlay.PlayState=3 AND OS=6 AND PS=0 Then '改了这句
'准备换曲前的最后一次状态改变
IF TitleLst.SelectedIndex<TitleLst.Options.Length-1 Then
TitleLst.SelectedIndex=TitleLst.SelectedIndex+1
Call TitleLst_OnChange()
ElseIF TitleLst.SelectedIndex>=TitleLst.Options.Length-1 AND Cycle.Checked Then
TitleLst.SelectedIndex=0
Call TitleLst_OnChange()
End IF
End IF
OS=WMPlay.OpenState
PS=WMPlay.PlayState
End Sub
</Script>

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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