应用

System.Media名称空间下的类SoundPlayer 能够让咱们很不便的播放wav波形声音文件。SoundPlayer类其实就是对winmm.dll文件中API函数的封装。

SoundPlayer类的应用很简略。如下:

SoundPlayer player = new SoundPlayer();player.SoundLocation = "音乐文件名";player.Load();player.Play();
其中Play办法是异步办法,会在另一个线程中播放。如果咱们有时候须要等声音播放结束之后再进行下一步操作。即声音播放须要阻塞以后线程。就能够应用PlaySync()

办法

  • SoundPlayer类的毛病:只能播放wav文件;在winxp下播放文件比拟大或位率比拟高的状况,PlaySync同步播放会有播放不齐全的问题。
  • 这个问题的产生是因为winmm.dll的版本问题引起的。在xp下winmm.dll的版本是5。在win7下是6。win7下就没有问题。如果要解决在
  • xp下播放不齐全的问题。能够应用xp下的录音机关上声音文件,把声音文件另存为7kbit/s的位率格局,但这样声音成果就很差了。

实现

援用System.Media名称空间下的类SoundPlayer

  SoundPlayer player = new SoundPlayer();

办法调用Play();

public void Play() {    **player.SoundLocation** = @".x0pbk-swz4q.wav";    //读取音频文件    **player.Load();    **//同步模式    **player.Play();    **     if (MessageBox.Show("播放音樂中,通过旋转耳机上的旋钮测试音量,若聲音播放失常则选是,反之否", "提醒", MessageBoxButtons.YesNo, MessageBoxIcon.Information) ==  DialogResult.No)     {        DisplaylistboxMSG("Headset測試結果為異常");    } else     {        DisplaylistboxMSG("Headset測試結果為失常");    }    player.Stop();    //进行播放    player.Dispose();}