//当前播放位置
int nextPlayIndex =0;
form_load(object sender,EventArgs e)
{
/*直接播放一个项目
axWindowsMediaPlayer1.currentMedia = axWindowsMediaPlayer1.newMedia(@"F:\myarcv\music\kaishin.mp3");
*/
//添加一个播放列表
WMPLib.IWMPPlaylist pl = axWindowsMediaPlayer1.newPlaylist("","");
WMPLib.IWMPMedia me = axWindowsMediaPlayer1.newMedia(@"F:\myarcv\music\kaishin.mp3");
pl.appendItem(me);
me = axWindowsMediaPlayer1.newMedia(@"F:\myarcv\music\my ocean.mp3");
pl.appendItem(me);
me = axWindowsMediaPlayer1.newMedia(@"F:\myarcv\music\Green Snake - cy.WMA");
pl.appendItem(me);
axWindowsMediaPlayer1.currentPlaylist = pl;
axWindowsMediaPlayer1.Ctlcontrols.play();
}
在axWindowsMediaPlayer1的MediaChange事件中写判断代码
private void axWindowsMediaPlayer1_MediaChange(object sender,AxWMPLib._WMPOCXEvents_MediaChangeEvent e)
{
//this.listBoxControl1.Items.Add("Media Change: " + axWindowsMediaPlayer1.Ctlcontrols.currentPosition.ToString()+" "
// +axWindowsMediaPlayer1.playState+" "
// +axWindowsMediaPlayer1.Ctlcontrols.currentItem.sourceURL);
if(axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
//根据播放模式自定义播放的currentItem;不指定播放列表是,wmp会使用默认列表
if(axWindowsMediaPlayer1.currentPlaylist != null)
{
//下一个要播放的位置
int nextPlayIndex = 0;
//单曲重复
if(true)
{
nextPlayIndex = nextPlayIndex;//或者不写代码
}
//列表一次播放
else if(true)
{
nextPlayIndex++;
//列表播放完毕
if(nextPlayIndex == axWindowsMediaPlayer1.currentPlaylist.count)
{
return;
}
}
//列表重复播放
else if(true)
{
nextPlayIndex++;
//列表播放完毕
if(nextPlayIndex == axWindowsMediaPlayer1.currentPlaylist.count)
{
nextPlayIndex = 0;
}
}
//随机播放
else if(true)
{
Random r = new Random(System.DateTime.Now.Ticks);
nextPlayIndex=r.Next(axWindowsMediaPlayer1.currentPlaylist.count);
}
axWindowsMediaPlayer1.currentMedia = axWindowsMediaPlayer1.currentPlaylist.get_Item(nextPlayIndex);
axWindowsMediaPlayer1.Ctlcontrols.play();
}
}
}
参考资料:WMPLib.IWMPPlaylist pl = axWindowsMediaPlayer1.newPlaylist("","");