Scripting e janela do Windows Media Player

0

Eu tenho usado o Applescript para controlar a reprodução do Quicktime Player no OSX e agora estou tentando fazer o mesmo no Windows 7 e na janela do Windows Media Player.

Tudo o que preciso fazer é

  • Inicie o WMP e carregue o arquivo de áudio
  • Alternar a reprodução
  • Pule para frente ou para trás x número de segundos.
  • Obtenha sua posição no arquivo de áudio.
  • Ir a reprodução para qualquer posição que eu escolher.
  • Posicionamento sub-segundo. (Veja EDIT abaixo)

O SDK no MSDN site parece oferecer tudo o que preciso, mas o meu código abaixo não funciona.

Set oWmp = CreateObject("WMPlayer.OCX")

' Launches WMP window    
oWmp.openPlayer("F:14-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()

A única coisa que funciona é a declaração openPlayer . Todo o resto executa, mas não erra nem faz nada. Playstate é sempre 0, mesmo quando eu vou para a janela do WMP e clico em pause / play ou stop. Eu estou trabalhando no Windows 7 32bit com WMP12

Eu não quero reproduzir áudio em segundo plano. Eu quero controlar a reprodução na janela do WMP. Usando .url = ... , o código funciona. Isso está sendo executado em segundo plano. Consulte aqui para saber mais.

O acima é de todo com o WMP? Fico feliz em usar VBS ou JScript.

EDIT: Depois de mais algumas pesquisas, descobri que o iTunes da Apple tem uma interface de script decente e pode fazer tudo o que eu listei acima. Mas, ao testá-lo, lembrei-me de que preciso de um posicionamento secundário que a interface COM do iTunes não forneça ...: (

    
por Dude named Ben 04.11.2015 / 12:23

2 respostas

0

openPlayer inicia outra instância do WMP, no modo completo. Todas as outras chamadas do WMP no seu script afetam apenas a instância interna do WMP que foi criada pela sua chamada para CreateObject . Essa instância interna é invisível nesse caso, mas também pode ser visível, como quando o controle WMP é incorporado em uma página da Web.

A interação com o modo completo WMP é chamada de "remoting", consulte aqui para mais informações. Mas temo que não seja possível fazer isso a partir de um script. Você precisará escrever um programa especial em uma linguagem como C ++.

    
por 23.11.2015 / 18:20
0

Embora Tim tenha respondido à pergunta como postado, quero adicionar essa resposta para referência futura a qualquer outra pessoa que tente fazer a mesma coisa.

Como mencionei, na edição da minha pergunta, o Quicktime Player para Windows estava próximo, mas não era bem assim. Então continuei pesquisando e encontrei um plug-in de script para o venerável antigo reprodutor de áudio WinAmp e ele funciona muito bem! Recebo posicionamento em milissegundos e tudo o mais que preciso.

Apenas um pequeno problema é que ele é de 32 bits e executá-lo em um ambiente Windows x64 significa que eu tenho que lembrar de usar o mecanismo VBS certo, o que não é grande coisa.

    
por 15.12.2015 / 11:52