[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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

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

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

TOP

回复 1# doswork
  1. 既效率、又简单的就是.......
  2. for i=0 to 100
  3. '这里加入要循环的代码
  4. next i
复制代码
#&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”之后退出“播放器”
  1. set player = createobject("wmplayer.ocx")
  2. player.url =".\123.mp3"
  3. for i=0 to 5
  4.   do until wmp playState = 1
  5.      wsh.sleep 3000
  6.      player.url =".\123.mp3"
  7.   loop
  8. next
复制代码

TOP

回复 2# pcl_test


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

TOP

回复 1# doswork

稍微改一下就行了,自动循环播放,超过20*3秒就结束
  1. set player = createobject("wmplayer.ocx")
  2. player.url =".\123.mp3"
  3. for i=1 to 20
  4. wsh.sleep 3000
  5. if  1 = player.playState then
  6. player.url =".\123.mp3"
  7. end if
  8. next
复制代码
#&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 才行
  1. set player = createobject("wmplayer.ocx")
  2. player.url =".\123.mp3"
  3. for i=1 to 5
  4. wsh.sleep 3000
  5. if  1 = player.playState then
  6. player.url =".\123.mp3"
  7. end if
  8. next
复制代码

TOP

本帖最后由 pcl_test 于 2016-9-4 00:01 编辑
  1. Set wmp = CreateObject("wmplayer.ocx")
  2. dt = now
  3. Do
  4.     wmp.URL = "123.mp3"
  5.     Do Until wmp.playState = 1
  6.         WSH.Sleep 1000
  7.         If DateDiff("s",dt,now) >=20 Then
  8.             flag = 1
  9.             wmp.controls.stop() '延时20秒后关闭
  10.             Exit Do
  11.         End If
  12.     Loop
  13.     IF flag = 1 Then Exit Do
  14. Loop
  15. Msgbox "音乐已关闭"
复制代码

TOP

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

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

TOP

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

TOP

返回列表