我用下面的方法玩mp3s和m4as:
private void playmp3(string path)
{
WMPLib.WindowsMediaPlayer a = new WMPLib.WindowsMediaPlayer();
a.URL = path;
a.controls.play();
}通常,当我播放它们时,它们只播放大约5秒或更短的时间,然后停止播放。如果我以任何方式与(WPF)窗体交互,它也会停止。我从BackgroundWorker调用playmp3。
编辑:在我移动鼠标大约十分之一秒后它就停止播放了。
发布于 2013-04-07 14:17:22
您还需要在播放器状态中编写代码,如下所示。
Player = new WMPLib.WindowsMediaPlayer();
Player.PlayStateChange +=
new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(Player_PlayStateChange);
Player.MediaError +=
new WMPLib._WMPOCXEvents_MediaErrorEventHandler(Player_MediaError);
Player.URL = "FC.wav";
Player.controls.play();
private void Player_PlayStateChange(int NewState)
{
if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped)
{
}
}
private void Player_MediaError(object pMediaObject)
{
MessageBox.Show("Cannot play media file.");
this.Close();
}发布于 2018-06-25 20:12:43
以简单的方式。在类级别中声明你的玩家。
WMPLib.WindowsMediaPlayer a;
private void playmp3(string path)
{
a = new WMPLib.WindowsMediaPlayer();
a.URL = path;
a.controls.play();
}这样你就可以很容易地解决这个问题了。
如果使用相同的方法停止播放,则在其中使用if条件,如下所示
private void playmp3(string path)
{
a = new WMPLib.WindowsMediaPlayer();
a.URL = path;
a.controls.play();
}您还需要在类级别添加新的WMPLib.WindowsMediaPlayer();,否则每次您调用该方法时,它都会创建一个新的播放器实例,并尝试停止或播放它,因此如下所示。
WMPLib.WindowsMediaPlayer a= new WMPLib.WindowsMediaPlayer();
private void playmp3(string path, string playState)
{
a.URL = path;
if(playstate.Equals("Play))
{
a.controls.play();
}
else if (playState.Equals("Stop"))
{
a.controls.stop();
}
}https://stackoverflow.com/questions/14350024
复制相似问题