Criando o controle de Reprodutor Multimídia do Windows programaticamente
[O recurso associado a esta página, Reprodutor Multimídia do Windows SDK, é um recurso herdado. Foi substituído pelo MediaPlayer. O MediaPlayer foi otimizado para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o MediaPlayer em vez de Reprodutor Multimídia do Windows SDK, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Quando você adiciona o controle Reprodutor Multimídia do Windows a um formulário da Caixa de Ferramentas, um objeto da classe AxWMPLib.AxWindowsMediaPlayer é criado. Essa classe wrapper fornece ao Player toda a funcionalidade de um controle ActiveX, incluindo o acesso às propriedades da interface do usuário, como Localização e Tamanho.
Se você não precisar das propriedades expostas pelo AxWindowsMediaPlayer ou se o aplicativo não tiver uma interface gráfica do usuário, você poderá criar um controle Player programaticamente. Nesse caso, você cria um objeto da classe WMPLib.WindowsMediaPlayer .
Observação
Como o objeto WindowsMediaPlayer não é encapsulado como um controle ActiveX, ele não tem nenhuma propriedade herdada de System.Windows.Forms.Control. Como resultado, a propriedade Controls não é renomeada para CtlControls, como é em AxWindowsMediaPlayer.
Para criar o controle Reprodutor Multimídia do Windows programaticamente, primeiro você deve adicionar uma referência a wmp.dll, que é encontrada na pasta \Windows\system32. Adicionar essa referência cria WMPLib.dll na pasta do projeto e uma referência ao WMPLib aparece em Gerenciador de Soluções.
O código de exemplo a seguir, parte de uma classe Form1, mostra como criar um objeto Player e reproduzir um arquivo. Quando a reprodução termina ou se o arquivo não pode ser reproduzido, o formulário é fechado.
Dim WithEvents Player As WMPLib.WindowsMediaPlayer
Private Sub PlayFile(ByVal url As String)
Player = New WMPLib.WindowsMediaPlayer
Player.URL = url
Player.controls.play()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
' TODO Insert a valid path in the line below.
PlayFile("c:\media\myaudio.wma")
End Sub
Private Sub Player_MediaError(ByVal pMediaObject As Object) _
Handles Player.MediaError
MessageBox.Show("Cannot play media file.")
Me.Close()
End Sub
Private Sub Player_PlayStateChange(ByVal NewState As Integer) _
Handles Player.PlayStateChange
If NewState = WMPLib.WMPPlayState.wmppsStopped Then
Me.Close()
End If
End Sub
WMPLib.WindowsMediaPlayer Player;
private void PlayFile(String url)
{
Player = new WMPLib.WindowsMediaPlayer();
Player.PlayStateChange +=
new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(Player_PlayStateChange);
Player.MediaError +=
new WMPLib._WMPOCXEvents_MediaErrorEventHandler(Player_MediaError);
Player.URL = url;
Player.controls.play();
}
private void Form1_Load(object sender, System.EventArgs e)
{
// TODO Insert a valid path in the line below.
PlayFile(@"c:\myaudio.wma");
}
private void Player_PlayStateChange(int NewState)
{
if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped)
{
this.Close();
}
}
private void Player_MediaError(object pMediaObject)
{
MessageBox.Show("Cannot play media file.");
this.Close();
}
Tópicos relacionados
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de