乐趣区

关于c#:c使用SoundPlayer播放wav格式音频

应用

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();}
退出移动版