- 播放系统自带声音
在System.Media命名空间中SystemSounds.Asterisk.Play(); SystemSounds.Beep.Play(); SystemSounds.Exclamation.Play(); SystemSounds.Hand.Play(); SystemSounds.Question.Play();
- 使用SoundPlayer播放.wav格式的声音
1)仅支持.wav音频文件
2)不支持同时播放多个音频
3)无法控制声音的音量
4)支持同步、异步播放
5)支持循环播放
6)支持文件和流播放
下面是示例:SoundPlayer player = new SoundPlayer("test.wav"); player.Play();
- 使用MediaPlayer播放声音
这个是基于Windows Media Player构建的,因此支持Windows Media Player能播放的格式。
1)可以同时播放多个声音
2)可以调整音量(Volume属性)
3)可以设置IsMuted属性实现静音
4)可以通过NaturalDuration属性得到音频的藏毒,通过Position属性得到当前播放进度MediaPlayer player = new MediaPlayer(); player.Open(new Uri("test.mp3", UriKind.Relative)); player.Play();
- 使用MediaElement播放声音
<MediaElement Source="test.mp3" LoadedBehavior="Play"/>
- 使用mciSendString系统播放音乐
/// <summary> /// 音乐播放 /// </summary> public static class AudioUtil { [DllImport("winmm.dll")] public static extern uint mciSendString(string lpstrCommand, string lpstrReturnString, uint uReturnLength, IntPtr hWndCallback); public static uint Play(string fileName) { //mciSendString(@"close media", null, 0, IntPtr.Zero); mciSendString($@"open ""{fileName}"" type mpegvideo alias media", null, 0, IntPtr.Zero); return mciSendString("play media repeat", null, 0, IntPtr.Zero); } public static uint Stop() { return mciSendString("close media", null, 0, IntPtr.Zero); } }
其中media是别名,是在open命令时使用alias指定的别名,后面停止播放时要带上这个别名。 - 使用NAudio第三方库播放声音
NuGet安装NAudioNAudio.Wave.Mp3FileReader mp3File = new NAudio.Wave.Mp3FileReader("test.mp3");//加载音频文件 NAudio.Wave.WaveOut waveOut = new NAudio.Wave.WaveOut(); waveOut.Init(mp3File);//初始化音频文件 waveOut.Play();
- 使用Speech文字转音频播放声音
需要添加引用System.Speechusing (SpeechSynthesizer speech = new SpeechSynthesizer()){ speech.Rate = 0; speech.Volume = 100; speech.Speak("你好啊"); }