Я использую 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 ... :(

2 ответа2

0

Несмотря на то, что Тим ответил на вопрос в том виде, в котором он был опубликован, я хочу добавить этот ответ для дальнейшего использования тем, кто пытается сделать то же самое.

Как я уже упоминал, в редакторе моего вопроса Quicktime Player для Windows был закрыт, но не совсем. Поэтому я продолжил поиск и нашел плагин сценариев для почтенного старого аудиоплеера WinAmp, и он прекрасно работает! Я получаю миллисекундное позиционирование и все остальное, что мне нужно.

Единственная незначительная проблема в том, что он 32-битный, и его запуск в среде Windows x64 означает, что я должен помнить, что нужно использовать правильный движок VBS, что не составляет особого труда.

0

openPlayer запускает другой экземпляр WMP в полном режиме. Все остальные вызовы WMP в вашем скрипте влияют только на внутренний экземпляр WMP, который был создан вашим вызовом CreateObject . Этот внутренний экземпляр невидим в этом случае, но также может быть видимым, например, когда элемент управления WMP встроен в веб-страницу.

Взаимодействие с полным режимом WMP называется "удаленное взаимодействие", см. Здесь для получения дополнительной информации. Но я боюсь, что это невозможно сделать из сценария. Вам нужно будет написать специальную программу на таком языке, как C++.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .