为了简单,不带第三方库我用了Windows Media Player这个控件,写代码时候发现这个并不简单,axWindowsMediaPlayer1_PlayStateChange可以是自动播放下一首的关键触发事件 wmppsLast = 12; //上一次状态,状态没有改变 以下是研究结果: indows Media Player状态改变: URL赋值时候,会自动播放,状态为9=>9=>3 ,调用代码axWindowsMediaPlayer1 .URL = @"test.mp3"; 暂停时候,状态为2,调用代码axWindowsMediaPlayer1.Ctlcontrols.pause(); 播放时候,状态为3,调用代码axWindowsMediaPlayer1 .Ctlcontrols.play(); 停止时候,状态为1,调用代码axWindowsMediaPlayer1.Ctlcontrols.stop(); 拖动进度条时候,无状态 自动播放完毕时候,
CacheHelper.SetCacheData("SetTimeNoify", "SetTimeNoify", _time); //this.axWindowsMediaPlayer1 .URL = Application.StartupPath + "\\流水.wav"; //this.axWindowsMediaPlayer1.Ctlcontrols.play CacheHelper.SetCacheData("SetTimeNoify", "SetTimeNoify", _time); this.axWindowsMediaPlayer1 .URL = Application.StartupPath + "\\流水.wav"; this.axWindowsMediaPlayer1.Ctlcontrols.play MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK) //{ // this.axWindowsMediaPlayer1
在Winform里面用AxWindowsMediaPlayer控件 ,控件放在tabControl里面,当切换选项卡时报了“灾难性故障 (异常来自 HRESULT:0x8000FFFF (E_UNEXPECTED ))” 崩溃,后来不直接拖控件到页面上,是先 申明一个AxWindowsMediaPlayer 对象,在需要播放媒体时在动态加载,否则移除该控件。