《The Ruby Way》第14章,记述了一段代码可以调用Windows API播放音乐。
但是,播放后休眠7秒就会退出程序,而不能等待音乐播放结束。这是作者给读者留的作业。
查了一下MMControl控件,得知有一个mode属性,可以用来判断sound的播放状态。
[quote]Mode属性
524:设备未打开
525:停止
526:播放
527:记录
528:查找
529:暂停
530:待命[/quote]
修改后的程序
require 'win32ole'
sound = WIN32OLE.new('MCI.MMcontrol')
wav = "D:\\Musics\\Japanese\\a002.mp3"
sound.fileName = wav
sound.autoEnable = true
sound.command = 'Open'
sound.command = 'Play'
sleep 7
但是,播放后休眠7秒就会退出程序,而不能等待音乐播放结束。这是作者给读者留的作业。
查了一下MMControl控件,得知有一个mode属性,可以用来判断sound的播放状态。
[quote]Mode属性
524:设备未打开
525:停止
526:播放
527:记录
528:查找
529:暂停
530:待命[/quote]
修改后的程序
require 'win32ole'
sound = WIN32OLE.new('MCI.MMcontrol')
wav = "D:\\Musics\\Japanese\\a002.mp3"
sound.fileName = wav
sound.autoEnable = true
sound.command = 'Open'
sound.command = 'Play'
while sound.mode == 526
sleep 1
end