Вопрос: Окно Scripting и Windows Media Player


Я использую Applescript для управления воспроизведением Quicktime Player под OSX и теперь пытаюсь сделать то же самое в Windows 7 и Windows Media Player окно,

Все, что мне нужно сделать, это,

  • Запустить WMP и загрузить аудиофайл
  • Переключить воспроизведение
  • Пропустить вперед или назад x количество секунд.
  • Получите свое положение в звуковом файле.
  • Переход к любой позиции, которую я выбираю.
  • Суб-второе позиционирование. (См. EDIT ниже)

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.


EDIT: После нескольких исследований я обнаружил, что iTunes от Apple имеет достойный интерфейс сценариев, и он может делать все, что я перечислял выше. Но после тестирования я вспомнил, что мне нужно второе позиционирование, которое интерфейс iTunes COM не предоставляет ... :(


0
2017-11-04 11:23


Источник


Да, объект WMPlayer.OCX предназначен для сценариев WMP. Каков результат вашего скрипта и где именно он не работает? - Tim De Baets
@TimDeBaets Единственное, что работает openPlayer заявление. Все остальное выполняет, но не делает ошибок и не делает ничего. Я работаю над Windows7 с WMP12. Playstate всегда 0, даже когда я иду в окно WMP и нажимаю на паузу / воспроизведение или остановку. - Dude named Ben
Я отредактировал свой вопрос, и, похоже, код будет работать только для объекта WMP в фоновом режиме. Он НЕ работает для окна WMP. :( - Dude named Ben


Ответы:


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

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


0
2017-11-23 17:20





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

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

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


0
2017-12-15 10:52