Программное создание элемента управления Медиаплеер Windows

[Функция, связанная с этой страницей, Медиаплеер Windows SDK, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо пакета SDK для Медиаплеер Windows. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

При добавлении элемента управления Медиаплеер Windows в форму из панели элементов создается объект класса AxWMPLib.AxWindowsMediaPlayer. Этот класс-оболочка предоставляет проигрывателю все функциональные возможности элемента управления ActiveX, включая доступ к свойствам пользовательского интерфейса, таким как Расположение и Размер.

Если вам не требуются свойства, предоставляемые AxWindowsMediaPlayer, или если приложение не имеет графического пользовательского интерфейса, вы можете создать элемент управления Проигрыватель программным способом. В этом случае создается объект класса WMPLib.WindowsMediaPlayer .

Примечание

Поскольку объект WindowsMediaPlayer не упакован в виде элемента управления ActiveX, он не имеет свойств, унаследованных от System.Windows.Forms.Control. В результате свойство Controls не переименовано в CtlControls, как в AxWindowsMediaPlayer.

 

Чтобы создать элемент управления Медиаплеер Windows программным способом, необходимо сначала добавить ссылку на wmp.dll, которая находится в папке \Windows\system32. При добавлении этой ссылки в папке проекта WMPLib.dll, а в Обозреватель решений появится ссылка на WMPLib.

В следующем примере кода, который является частью класса Form1, показано, как создать объект Player и воспроизвести файл. По завершении воспроизведения или при невозможности воспроизведения файла форма закрывается.

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();
}


Внедрение элемента управления Медиаплеер Windows в решение платформа .NET Framework