gpt4 book ai didi

c# - 使用 MediaPlayer 控件自动播放下一个文件(AxWindowsMediaPlayer)

转载 作者:太空狗 更新时间:2023-10-29 22:57:52 25 4
gpt4 key购买 nike

在 PlayStateChange 事件中更改 AxWindowsMediaPlayer URL 时,它不会自动开始播放,只是变为“就绪”状态。

我的 C# WinForms 程序中有一个“AxWindowsMediaPlayer”控件。当我通常更改 WindowsMediaPlayer1 的 URL 属性时,它工作正常并自动播放新的 mp3 文件。

当歌曲结束时 WindowsMediaPlayer1 状态更改为 Stopped 并且我希望下一个 URL 自动开始播放。

我使用了PlayStatChange事件,所以当播放器状态为Stopped时,URL会改变,但不会自动播放!

播放器进入 Ready 状态,直到我按下 WindowsMediaPlayer1 上的播放按钮。

代码如下:

private void Form1_Load(object sender, EventArgs e)
{
WindowsMediaPlayer1.URL = "6.mp3"; //Works fine
}
private void button1_Click(object sender, EventArgs e)
{
WindowsMediaPlayer1.URL = "4.mp3"; //Works fine. It changes the music.
}
private void WindowsMediaPlayer1_PlayStateChange(object sender,
AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (e.newState == 1) //1 is for "Stopped" State
WindowsMediaPlayer1.URL = "5.mp3";
// Here is the problem.
// URL Will change but player goes to "Ready" State
// But not in "playing" until I press the play button in control.
}

如有任何帮助,我们将不胜感激。

最佳答案

如媒体播放器中所述documentations ,您不应从事件处理程序代码中设置 Url。相反,您可以这样播放下一个文件:

private void axWindowsMediaPlayer1_PlayStateChange(object sender, 
AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (e.newState == 1)
{
this.BeginInvoke(new Action(() => {
this.axWindowsMediaPlayer1.URL = @"address of nextfile";
}));
}
}

您还可以考虑使用 playlist 作为另一种选择.

关于c# - 使用 MediaPlayer 控件自动播放下一个文件(AxWindowsMediaPlayer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35014190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com