Board logo

标题: 不用任何播放器实现后台播放声音,一行搞定 [打印本页]

作者: qinchun36     时间: 2010-1-22 21:54    标题: 不用任何播放器实现后台播放声音,一行搞定


mshta vbscript:document.write("<bgsound src='E:\audio\曹方我是认真的.mp3' loop='-1'>")
src可以是网络资源loop是播放次数-1表示循环,手机打的不知道有错没。
作者: clamber     时间: 2010-1-23 15:32
谢谢!用得着.
作者: radem     时间: 2010-1-23 22:09
不错
但运行多几次任务管理器就添加了几个mshta.exe进程
作者: jianluck1988     时间: 2010-1-26 19:39
有意思啊
作者: qwd     时间: 2010-1-26 20:01
不错! 效果不错!精简 效果佳!

就是不知从哪关关闭 !只能结束进程了!
本来就是后台运行吗?不会有关闭按钮了!呵呵!
作者: nemon     时间: 2010-1-26 21:35
是有出现多个进程的问题
还是挺不错的 支持









Cordless DrillsMakita Cordless DrillsBosch Cordless Drillscordless drill driver
作者: qinchun36     时间: 2010-1-27 10:08
这个代码实际上是打开了一个HTML页面(我们看不到),这个页面里面会有背景声音;
而网页没关闭的时候 mshta.exe 就存在,声音停止了网页也不会自动关闭,于是就会残留进程;
因此我们只能手动将其关闭,
或者,由于没有事件,只能在代码里面加上一个固定的等待时间,之后自动关闭。
因为 vbscript 的 wscript 对象在 html 中不可用,所以不能用 wscript.sleep 来延时,改用 window 对象的 setTimeout

以我那首歌为例,长度是 3分06秒 ,即 186 秒,假设我要播放两遍之后结束 mshta.exe 进程,那么就是要在 372000 毫秒之后关闭,可以适当地等几秒,就取 375000 吧
mshta vbscript:execute("document.write ""<bgsound src='E:\audio\曹方我是认真的.mp3' loop='2'>"":window.setTimeout ""window.close()"",375000")
用 javascript 写起来更容易些:
mshta javascript:document.write("<bgsound src='E:\audio\曹方我是认真的.mp3' loop='2'>");window.setTimeout("window.close()",375000)
如果你不知道歌曲有多长,就把时间设的长一些,一般流行歌曲不会超过 300000 ms,即5分钟吧。

----------------------
2010.09.03 修改以适应有空格的路径
代码效果:

后台播放 "C:\Documents and Settings\issuser\桌面\music\incoming\EMINEM ft.NATE DOGG - Shake That.mp3" 两遍,但本程序 mshta.exe 会准时在 360000ms,即 6 分钟后自动结束。
mshta vbscript:execute("document.write ""<bgsound src='file:///"+Replace("C:\Documents and Settings\issuser\桌面\music\incoming\EMINEM ft.NATE DOGG - Shake That.mp3","\","/")+"' loop='2'>"":window.setTimeout ""window.close()"",360000")
[ Last edited by qinchun36 on 2010-9-3 at 18:39 ]