Воспроизведение аудио при нажатии клавиш - PullRequest
1 голос
/ 27 марта 2019

Я пытаюсь создать сценарий, который будет воспроизводить аудио и закрывать проигрыватель после его завершения. Мне удалось присвоить его комбинации клавиш CTRL + *:

target_app = "C:\Program Files (x86)\Windows Media Player\wmplayer.exe"
target_filepath = "C:\some_audio.mp3"
^NumpadMult::Run, %target_app% %target_filepath%

Это просто запускает проигрыватель Windows Media и воспроизводит звук, но проигрыватель остается открытым после завершения воспроизведения звука. Я тоже хочу закрыть плеер.

Я только начал использовать AutoHotkey и не знаю, как это сделать. Мне нужно сделать следующие операции:

  • чтение продолжительности аудио ()
  • установить время ожидания (с использованием длительности звука) ()
    • закрыть плеер ()
  • запустить плеер и воспроизвести аудио ()

Как я могу это сделать?

1 Ответ

2 голосов
/ 27 марта 2019

На всякий случай, если вы хотите проверить продолжительность аудио:

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)

Исходное сообщение

...