Autohotkey 在按键上播放音频

Autohotkey 在按键上播放音频,autohotkey,Autohotkey,我正在尝试创建一个脚本,它将播放音频,并在播放结束时关闭播放器。我已成功将其分配给组合键CTRL+*: 这只是启动Windows Media Player并播放音频,但播放完音频后,播放机仍保持打开状态。我还想关闭球员 我刚开始使用自动热键,不知道怎么用。我需要执行以下操作: 读取音频的持续时间(✗) 设置超时(使用音频持续时间)(✗) 关闭播放器(✗) 运行播放器并播放音频(✓) 如何执行此操作?以防您要检查音频持续时间: GetAudioDuration( mFile ) {

我正在尝试创建一个脚本,它将播放音频,并在播放结束时关闭播放器。我已成功将其分配给组合键CTRL+*:

这只是启动Windows Media Player并播放音频,但播放完音频后,播放机仍保持打开状态。我还想关闭球员

我刚开始使用自动热键,不知道怎么用。我需要执行以下操作:

  • 读取音频的持续时间(
  • 设置超时(使用音频持续时间)(
    • 关闭播放器(
  • 运行播放器并播放音频(

如何执行此操作?

以防您要检查音频持续时间:

GetAudioDuration( mFile ) {
    VarSetCapacity( DN, 16 ), DLLFunc := "winmm.dll\mciSendString" ( A_IsUnicode ? "W" : "A" )
    DllCall( DLLFunc, Str, "open " """" mFile """" " Alias MP3", UInt, 0, UInt, 0, UInt, 0 )
    DllCall( DLLFunc, Str, "status MP3 length", Str, DN, UInt, 16, UInt, 0 )
    DllCall( DLLFunc, Str, "close MP3", UInt, 0, UInt, 0, UInt, 0 )
    Return DN
}

MsgBox, % GetAudioDuration( "C:\WINDOWS\Media\ding.wav" ) ; returns 397 (Windows 10)

检查命令,它可能会使事情变得更简单。@Yane我很高兴有一个内置的方法来完成这项工作。它工作正常:
^NumpadMult::SoundPlay,C:\space test\invalid\u keypress.mp3,1
。似乎没有必要引用包含路径的空间(至少在本例中是这样)。
GetAudioDuration( mFile ) {
    VarSetCapacity( DN, 16 ), DLLFunc := "winmm.dll\mciSendString" ( A_IsUnicode ? "W" : "A" )
    DllCall( DLLFunc, Str, "open " """" mFile """" " Alias MP3", UInt, 0, UInt, 0, UInt, 0 )
    DllCall( DLLFunc, Str, "status MP3 length", Str, DN, UInt, 16, UInt, 0 )
    DllCall( DLLFunc, Str, "close MP3", UInt, 0, UInt, 0, UInt, 0 )
    Return DN
}

MsgBox, % GetAudioDuration( "C:\WINDOWS\Media\ding.wav" ) ; returns 397 (Windows 10)