C# 后台调用MediaPlayer播放声音文件
1、最简单的播放声音文件的方法是使用SoundPlayer,但是功能相对简单,只能播放wav格式,并且不好控制。只需引用system.media命名空间
SoundPlayer simpleSound = new SoundPlayer(@"D:\4000706806改.wav");
simpleSound.Play();
2、调用MediaPlayer类播放声音文件,可以支持多种格式,并且控制相对方便。需要添加PresentationCore、WindowsBase两个引用,并添加using System.Windows.Media(不是system.Media)
private MediaPlayer myMediaPlayer = new MediaPlayer();
public Form1()
{
// Initialize Forms Designer generated code.
InitializeComponent();
playSound.Enabled = true;
myMediaPlayer.MediaEnded += new EventHandler(MediaEnded);
}
private void button1_Click(object sender, EventArgs e)
{
playSound.Enabled = false;
//SoundPlayer simpleSound = new SoundPlayer(@"D:\4000706806改.wav");
//simpleSound.Play();
Uri testUri = new Uri(@"D:\4000706806改.wav");
myMediaPlayer.Open(testUri);
myMediaPlayer.Play();
}
private void MediaEnded(object sender, EventArgs e)
{
playSound.Enabled = true;
}
- 升级优化代码
public static void playAll(string file)
{
Uri testUri = new Uri(file);
LogHelper.WriteLog("开始播放:" + DateTime.Now.Ticks);
//线程同步对象
AutoResetEvent m_Event = new AutoResetEvent(false);
// 播放对象
MediaPlayer myMediaPlayer = new MediaPlayer();
myMediaPlayer.MediaEnded += new EventHandler(delegate (object sender, EventArgs e) {
m_Event.Set();
});
myMediaPlayer.Open(testUri);
LogHelper.WriteLog("调用函数完成:" + DateTime.Now.Ticks);
myMediaPlayer.Play();
LogHelper.WriteLog("等待结束:" + DateTime.Now.Ticks);
// 等待执行完成
m_Event.WaitOne();
}
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2020/07/03 08:02