Я использую Applescript для управления воспроизведением QuickTime Player под OSX и теперь пытаются сделать то же самое на Windows 7 и окна Windows Media Player.
Все, что мне нужно сделать, это,
- Запустите WMP и загрузите аудио файл
- Переключить воспроизведение
- Пропустить вперед или назад x количество секунд.
- Получить свою позицию в аудиофайле.
- Переместите воспроизведение в любую позицию, которую я выберу.
- Под-Второй позиционирования. (См. РЕДАКТИРОВАТЬ ниже)
SDK на сайте MSDN предлагает все, что мне нужно, но мой код ниже не работает.
Set oWmp = CreateObject("WMPlayer.OCX")
' Launches WMP window
oWmp.openPlayer("F:\2014-04-27.mp3")
' This launches background process, don't want this...
'oWmp.url = "file:///F:/2014-04-27.mp3"
' Wait for file to load...
wscript.sleep 200
' Check the state of the player...
While oWmp.Playstate <> 3
log "Waiting for player. Current state is: " & oWmp.Playstate
WScript.Sleep 100
Wend
oWmp.controls.pause()
wscript.sleep 2000
oWmp.controls.play()
Единственное, что работает, это оператор openPlayer
. Все остальное выполняется, но не выдает ошибку и ничего не делает. Playstate всегда равен 0, даже когда я захожу в окно WMP и нажимаю на паузу / воспроизведение или остановку. Я работаю на Windows 7 32bit с WMP12
Я не хочу воспроизводить аудио в фоновом режиме. Я хочу контролировать воспроизведение в окне WMP. Используя .url = ...
тогда код работает. Это работает в фоновом режиме, хотя. Смотрите здесь для получения дополнительной информации.
Выше ли вообще с WMP? Я счастлив использовать VBS или JScript.
РЕДАКТИРОВАТЬ: После еще одного исследования, я обнаружил, что Apple, iTunes имеет приличный интерфейс сценариев, и он может делать все, что я перечислил выше. Но после тестирования я вспомнил, что мне нужно подсекундное позиционирование, которое не обеспечивает интерфейс iTunes COM ... :(