c# winForm中播放声音的三种方法

 

声音文件xxx.wav放置在bin目录下debug下

 

一,使用SoundPlay来实现

1,添加引用using System.Media;

2,实例化 SoundPlayer play = new SoundPlayer();

3,加载 .wav格式音频文件的路径或URL play.SoundLocation = Application.StartupPath + "//xxx.wav";

其中二三两步可以并在一起写,SoundPlayer play = new SoundPlayer("xxx.wav");因为调用Play方法时,会自动加载该文件。

4,使用Load方法来同步加载声音,play.Load();

5,播放音频。使用Play()来进行播放,这方法是异步方法,会在另一个线程中播放。如果有时候需要等播放完成后才能允许进行其他操作,那么可以使用PlaySync()来进行播放。如果想循环播放,则采用PlayLooping()来实现。使用这三个方法都是如果尚未加载.wav文件,则会先加载该文件。

6,停止播放。使用Stop():若当前正在播放,则停止播放。

7,释放资源。利用Dispose即可释放资源。play.Dispose(); 

 

二,通过API调用 using System.Runtime.InteropServices

[DllImport("winmm.dll")] 

public static extern bool PlaySound(string pszSound, int hmod, int fdwSound); 

public const int SND_FILENAME = 0x00020000; public const int SND_ASYNC = 0x0001; 

//调用下面的方法

PlaySound("xxx.wav", 0, SND_ASYNC | SND_FILENAME); 

 

三,使用 Audio 对象 

using Microsoft.VisualBasic.Devices;//Microsoft.VisualBasic.dll

需要添加引用 

Audio a = new Audio();

a.Play("xxx.wav");

 

posted @ 2022-05-30 14:25  qingjiawen  阅读(3998)  评论(0编辑  收藏  举报