返回列表 发帖

[问题求助] 【已解决】怎么在同一个VBS中延时结束后台循环播放的音乐?

本帖最后由 doswork 于 2016-9-3 23:12 编辑

怎么在同一个VBS中延时结束后台循环播放的音乐?

如下是循环播放的代码,怎么让它在从开始运行起5分钟后自动关闭?(不知道调用什么来关闭……)
set player = createobject("wmplayer.ocx")
player.url =".\123.mp3"
  do until wmp playState = 1
     wsh.sleep 3000
     player.url =".\123.mp3"
  loopCOPY

方法一、使用主从方式监控
方法二、开始时记录当前日期时间,循环中不断获取并判断当前日期时间与开始时记录下的是否相差5分钟以上
另外你的循环播放也不对,别问我怎么实现

TOP

回复 1# doswork
既效率、又简单的就是.......
for i=0 to 100
'这里加入要循环的代码
next iCOPY
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 2# pcl_test


    多谢版主提供方法,再慢慢摸索吧……
   我只是想做一个简易的“定时休息”的功能,wmplayer.ocx具体参数还不知道
   那代码也是找的代码小改一下,对短音乐来说效果达到“循环播放”,但一直循环没法停比较麻烦

TOP

本帖最后由 doswork 于 2016-9-3 22:03 编辑

回复 3# ivor


  多谢回复,关键是for next 怎么用到那代码里? 直接套用会没有效果……  
  貌似只有那个代码才可以实现播放/循环播放,do ……loop 只是循环判断,但是如果去掉这个循环判断那代码也就不能打开音乐了。

  如下代码效果还是不停的播放“123.mp3”,并不是播放5次“123.mp3”之后退出“播放器”
set player = createobject("wmplayer.ocx")
player.url =".\123.mp3"
for i=0 to 5
  do until wmp playState = 1
     wsh.sleep 3000
     player.url =".\123.mp3"
  loop
next COPY

TOP

回复 2# pcl_test


    版主,论坛有个小问题,第一次编辑帖子之后,第二次再编辑时内容却还是最原始的内容,没有更新,只得复制上一次修改的然后再编辑,比较麻烦……  建议修改下这个小问题

TOP

回复 1# doswork

稍微改一下就行了,自动循环播放,超过20*3秒就结束
set player = createobject("wmplayer.ocx")
player.url =".\123.mp3"
for i=1 to 20
wsh.sleep 3000
if  1 = player.playState then
player.url =".\123.mp3"
end if
nextCOPY
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

本帖最后由 doswork 于 2016-9-3 23:11 编辑

回复 7# ivor


    多谢!
   有点儿奇怪,我测试的音乐是3秒,设定 i=5 应该是响 5次 才对,实际123.mp3只播放了3次就停止了……

搞定了,还得用参数 settings.playCount:integer 才行
set player = createobject("wmplayer.ocx")
player.url =".\123.mp3"
for i=1 to 5
wsh.sleep 3000
if  1 = player.playState then
player.url =".\123.mp3"
end if
nextCOPY

TOP

本帖最后由 pcl_test 于 2016-9-4 00:01 编辑
Set wmp = CreateObject("wmplayer.ocx")
dt = now
Do
    wmp.URL = "123.mp3"
    Do Until wmp.playState = 1
        WSH.Sleep 1000
        If DateDiff("s",dt,now) >=20 Then
            flag = 1
            wmp.controls.stop() '延时20秒后关闭
            Exit Do
        End If
    Loop
    IF flag = 1 Then Exit Do
Loop
Msgbox "音乐已关闭"COPY

TOP

本帖最后由 pcl_test 于 2016-9-3 23:50 编辑

回复 8# doswork
Set wmp = CreateObject("wmplayer.ocx")
For i=1 To 5
  wmp.URL = "123.mp3"
  Do Until wmp.playState = 1
      WSH.Sleep 1000
  Loop
Next
Msgbox "音乐已关闭"COPY

TOP

我怎么没有这个 wmplayer.ocx 文件呢

TOP

返回列表