# SoundPlay

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

    SoundPlay Filename , Wait

## 参数

Filename

  类型: 字符串

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

  要发出标准的系统声音, 请指定星号后跟着数字, 如下所示. 注意: 在此模式中 Wait 参数没有效果.

  - *-1 = 简单的哔音. 如果声卡不可用, 则使用扬声器生成这个声音.
  - *16 = 手型(停止/错误声)
  - *32 = 问号声
  - *48 = 感叹声
  - *64 = 星号(消息声)
Wait

  类型: 字符串

  如果未设置或省略, 则在播放文件时, 脚本的当前线程会移动到下一个语句. 否则, 请指定 1 或单词 WAIT, 这会使得当前线程会等到文件播放结束后才继续执行. 即使在等待时, 新的线程可以通过热键, 自定义菜单或计时器来启动.

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

## 错误处理

失败时抛出异常.

## 备注

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

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

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

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

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

## 相关

SoundBeep, Sound 函数, MsgBox, 线程

## 示例

播放位于 Windows 目录下的 .wav 文件.

    SoundPlay A_WinDir "\Media\ding.wav"

产生一个简单的哔哔声.

    SoundPlay "*-1"

dftg