Программное создание элемента управления Медиаплеер 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();
}
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по