Pergunta

Estou procurando uma maneira de interagir com uma versão completa autônoma do Windows Media Player.
Principalmente eu preciso saber o caminho da faixa atualmente reproduzida.

O iTunes SDK torna isso muito fácil, mas infelizmente não há nenhuma maneira de fazer isso com o Windows Media Player, pelo menos não em .Net (C#) sem qualquer uso pesado de pinvoke, com o qual não me sinto muito confortável.

Obrigado

Só para esclarecer:Não quero incorporar uma nova instância do Windows Media Player em meu aplicativo, mas sim controlar/ler a versão completa "real" do Windows Media Player, iniciada separadamente pelo usuário

Foi útil?

Solução

eu tive isso https://social.msdn.microsoft.com/Forums/vstudio/en-US/dbd43d7e-f3a6-4087-be06-df17e76b635d/windows-media-player-remoting-in-c?forum=clr nos meus favoritos, mas NÃO testei de qualquer maneira.Apenas um ponteiro na direção certa.Não é nada oficial e exigirá um pouco de pesquisa, mas você deve obter um wrapper bastante simples (que ainda usará o PInvoke nos bastidores - mas você não o verá) no Windows Media Player.

Espero que ajude.

Ah, eu entendi mal.Achei que você estava falando sobre como controlar a instância do Windows Media Player em execução.Se você mesmo hospeda o Windows Media Player, o WMPLib é certamente a melhor solução.

Outras dicas

Basta adicionar uma referência a wmp.dll (\windows\system32\wmp.dll)

using WMPLib;

E então você pode instanciar um media player

var Player = new WindowsMediaPlayer();
// Load a playlist or file and then get the title 
var title = Player.controls.currentItem.name;

Ver Criando o controle do Windows Media Player programaticamente Para maiores informações

Para a comunicação remota do Windows Media Player, você pode usar a interface IWMPRemoteMediaServices para controlar o Windows Media Player independente.E você deve ser capaz de ler todas as informações que deseja, como título ou nome de arquivo, do objeto do player WMP.Infelizmente não há código smaple C# no SDK incluído.Você pode obter os arquivos aqui: http://d.hatena.ne.jp/punidama/20080227 Procure o arquivo wmpremote.zip originalmente é daqui: http://blogs.msdn.com/ericgu/archive/2005/06/22/431783.aspx

Então você deve converter para o objeto WindowsMediaPlayer:RemotedWindowsMediaPlayer rm = new RemotedWindowsMediaPlayer();WMPLib.WindowsMediaPlayer myPlayer = this.GetOcx() como WMPLib.WindowsMediaPlayer;

e pronto..

A melhor informação que vi sobre a interação com o Windows Media Player é esta artigo escrito por Stephen Toub.

Ele lista um monte de maneiras diferentes de reproduzir arquivos dvr-ms (embora não importa qual formato eles sejam para isso).A parte que possivelmente é do seu interesse é sobre o uso de um controle ActiveX do Media Player, que você pode adicionar à caixa de ferramentas do visual Studio clicando com o botão direito e adicionando o controle ActiveX COM do Windows Media Player.Você pode então incorporar o player ao seu aplicativo e acessar várias propriedades do Media Player, como o URL:

WMPplayer.URL = stringPathToFile;

Esta solução possivelmente não é o que você deseja porque está iniciando uma nova instância do Media Player (até onde eu sei), mas pode indicar a direção certa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top