SoundPlay

播放音频, 视频或其他支持的文件类型.

SoundPlay, Filename , Wait

参数

Filename

要播放的文件名, 如果未指定绝对路径, 则假定在 %A_WorkingDir% 中.

要发出标准的系统声音, 请像下面显示的那样指定星号后跟着数字. 注: 在此模式中 Wait 参数没有效果.
*-1: 简单的哔哔声. 如果声卡不可用, 则使用扬声器生成这个声音.
*16: 手型(停止/错误声)
*32: 问号声
*48: 感叹声
*64: 星号(消息声)

已知限制: 由于 Windows 系统的 Bug, 路径超过 127 个字符的 WAV 文件将不会被播放. 要解决这个问题, 可以使用其他文件类型如 MP3(路径长度最多 255 个字符) 或使用 8.3 短路径(请参阅 A_LoopFileShortPath 如何检索这些路径).

Wait

如果省略, 则在播放文件时脚本的当前线程会移动到下一个命令. 要避免这种情况, 请指定 1 或单词 WAIT, 这会使得当前线程会等到文件播放结束后才继续执行. 即使在等待时, 可以通过热键, 自定义菜单项计时器启动新的线程.

已知限制: 如果省略 WAIT 参数, 则操作系统可能认为播放的文件 "在使用中", 直到脚本关闭或播放另一个文件(甚至是不存在的文件).

错误处理

[v1.1.04+]: 此命令失败时会抛出异常. 想了解更多信息, 请参阅运行时错误.

如果遇到问题则 ErrorLevel 被置为 1, 否则为 0.

备注

所有 Windows 操作系统应该都能够播放 .wav 文件. 不过, 如果操作系统中没有安装正确的解码器或功能, 那么其他文件(.mp3, .avi, 等等) 可能无法播放.

如果在播放一个文件时当前脚本播放了第二个文件, 那么第一个文件会被停止后才可以播放第二个. 在一些系统中, 即使在完全独立的脚本中播放新文件时, 某些文件类型也可能停止播放.

要停止当前正在播放的文件, 请对不存在的文件使用 SoundPlay, 例如: SoundPlay, Nonexistent.avi.

如果脚本退出了, 那么任何由它启动的当前正在播放的文件将会停止.

相关

SoundBeep, SoundGet, SoundSet, SoundGetWaveVolume, SoundSetWaveVolume, MsgBox, 线程

示例

#1

SoundPlay, %A_WinDir%\Media\ding.wav
SoundPlay *-1  ; 简单的哗哗声. 如果声卡不可用, 则使用扬声器生成这个声音.