找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21935|回复: 10

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

[复制链接]
发表于 2016-9-3 20:07:10 | 显示全部楼层 |阅读模式
本帖最后由 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

复制代码
发表于 2016-9-3 20:56:21 | 显示全部楼层
方法一、使用主从方式监控
方法二、开始时记录当前日期时间,循环中不断获取并判断当前日期时间与开始时记录下的是否相差5分钟以上
另外你的循环播放也不对,别问我怎么实现
发表于 2016-9-3 21:45:02 | 显示全部楼层
回复 1# doswork
  1. 既效率、又简单的就是.......
  2. for i=0 to 100
  3. '这里加入要循环的代码
  4. next i
复制代码
 楼主| 发表于 2016-9-3 21:47:15 | 显示全部楼层
回复 2# pcl_test


    多谢版主提供方法,再慢慢摸索吧……
   我只是想做一个简易的“定时休息”的功能,wmplayer.ocx具体参数还不知道
   那代码也是找的代码小改一下,对短音乐来说效果达到“循环播放”,但一直循环没法停比较麻烦
 楼主| 发表于 2016-9-3 21:54:50 | 显示全部楼层
本帖最后由 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
复制代码
 楼主| 发表于 2016-9-3 22:17:38 | 显示全部楼层
回复 2# pcl_test


    版主,论坛有个小问题,第一次编辑帖子之后,第二次再编辑时内容却还是最原始的内容,没有更新,只得复制上一次修改的然后再编辑,比较麻烦……  建议修改下这个小问题
发表于 2016-9-3 22:31:05 | 显示全部楼层
回复 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
复制代码
 楼主| 发表于 2016-9-3 22:52:55 | 显示全部楼层
本帖最后由 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
复制代码
发表于 2016-9-3 23:29:22 | 显示全部楼层
本帖最后由 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 "音乐已关闭"
复制代码
发表于 2016-9-3 23:48:32 | 显示全部楼层
本帖最后由 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 "音乐已关闭"
复制代码
发表于 2016-9-4 11:55:03 | 显示全部楼层
我怎么没有这个 wmplayer.ocx 文件呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:43 , Processed in 0.086459 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表