我学习c#中winform自带的windows media player,找这方面的资料,找了许久,今天我在这里总结一下。
我们在c#的“工具栏”里需要导入windows media player媒体播放工具。
1)实现音频视频的循环播放
//加载音频和视频
private void PlayThread()
{
MySqlConnection conn = BaseClass.DBConn.SaylnConn();
conn.Open();
MySqlCommand cmd = new MySqlCommand("select * from tb_dish where dish_name='" + dishName.Text + "'", conn);
MySqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
//加载动画或音频
axWindowsMediaPlayer1.URL = sdr["dish_flash"].ToString().Trim();
axWindowsMediaPlayer1.Ctlcontrols.play();
}
//实现音频和视频的循环播放
protected void InitEvent()
{
axWindowsMediaPlayer1.StatusChange += new EventHandler(axWindowsMediaPlayer1_StatusChange);
}
private void axWindowsMediaPlayer1_StatusChange(object sender, EventArgs e)
{
this.axWindowsMediaPlayer1.settings.setMode("loop", true);
}
2)当由一个winform跳转到另一个winform时,我们通常要将当前页面的声音关闭。
以下面的代码为例:
private void content_Click(object sender, EventArgs e)
{
this.axWindowsMediaPlayer1.Ctlcontrols.stop();
this.axWindowsMediaPlayer2.Ctlcontrols.stop();
nutriAnalysis nutri = new nutriAnalysis();
nutri.Owner = this;
this.Hide();
nutri.ShowDialog();
}
我之前试了几次没有成功,原因是我在axWindowsMediaPlayer1_StatusChange方法中添加了判断音视频是否关闭的语句,后来去掉了就成功了。下面将这个判断语句也记一下,方便以后使用。
//判断音乐是否已停止播放
if (axWindowsMediaPlayer2.playState == WMPLib.WMPPlayState.wmppsStopped)
{
this.axWindowsMediaPlayer2.Ctlcontrols.play();
}