相关文章推荐
咆哮的牛肉面  ·  Qluster: An ...·  1 年前    · 

第一种是利用DirectX

1.安装了DirectX SDK(有9个DLL文件)。这里我们只用到MicroSoft.DirectX.dll 和 Microsoft.Directx.DirectSound.dll
2.引入DirectX 的DLL文件的名字空间:

using Microsoft.DirectX;  using Microsoft.DirectX.DirectSound;

3.建立设备

Device dv=new Device();

4.设置CooperativeLevel。因为windows是多任务的系统,设备不是独占的
SecondaryBuffer buf=new SecondaryBuffer(@"snd.wav",dv);

5.开辟缓冲区

SecondaryBuffer buf=new SecondaryBuffer(@"snd.wav",dv);

6.接下来就可以播放啦。第一个参数表示优先级别,0是最低的。第2个参数是播放方式,这里是循环播放。
buf.Play(0,BufferPlayFlags.Looping);

第二种是利用Microsoft speech object Library

/// <summary /// 播放声音文件 /// </summary> /// <param name="FileName">文件全名</param> public void PlaySound(string FileName) {//要加载COM组件:Microsoft speech object Library if (!System.IO.File.Exists(FileName)) return; SpeechLib.SpVoiceClass pp = new SpeechLib.SpVoiceClass(); SpeechLib.SpFileStreamClass spFs = new SpeechLib.SpFileStreamClass(); spFs.Open(FileName, SpeechLib.SpeechStreamFileMode.SSFMOpenForRead, true); SpeechLib.ISpeechBaseStream Istream = spFs as SpeechLib.ISpeechBaseStream; pp.SpeakStream(Istream, SpeechLib.SpeechVoiceSpeakFlags.SVSFIsFilename); spFs.Close();

第三种:引用SoundPlayer

System.Media.SoundPlayer sndPlayer = new System.Media.SoundPlayer(Application.StartupPath+@"/pm3.wav"); sndPlayer.PlayLooping();

第4种:利用Windows Media Player

新建一个C#的Windows Form工程(Windows应用程序),并且定义两个菜单按钮(menuItem1,menuItem2)。
选择菜单中的“工具”中的“自定义工具箱(添加/移除工具箱项)”,在自定义工具箱的窗口中,点击展开“COM 组件”项,选中“Window Media Player”选项。确定后在“工具箱”中便会出现“Windows Media Player”这一项,然后再将其拖至Form上,调整大小,系统在“引用”中自动加入了对此dll的引用,AxMediaPlayer就是我们使用的Namespace与class。
在属性栏中设置好此控件的一些属性,为了方便,这里我把AutoStart设置成为true(其实默认是true),只要FileName被设置(打开了文件),则文件将会自动播放。完整代码如下:

private void menuItem1_Click(object sender, System.EventArgs e) OpenFileDialog ofDialog = new OpenFileDialog(); ofDialog.AddExtension = true; ofDialog.CheckFileExists = true; ofDialog.CheckPathExists = true; //the next sentence must be in single line ofDialog.Filter = "VCD文件(*.dat)|*.dat|Audio文件(*.avi)|*.avi   |WAV文件(*.wav)|*.wav|MP3文件(*.mp3)|*.mp3|所有文件 (*.*)|*.*"; ofDialog.DefaultExt = "*.mp3"; if(ofDialog.ShowDialog() == DialogResult.OK) // 2003一下版本 方法 this.axMediaPlayer1.FileName = ofDialog.FileName; this.axMediaPlayer1.URL= ofDialog.FileName;//2005用法

这里使用的是微软的播放器,大家也可以试试Winamp的控件,如果你只需要播放声音而不需要显示,你只要把AxMediaPlayer的Visible属性设置为false就可以了。

以上就是c# 播放声音的四种方法的详细内容,更多关于c# 播放声音的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
  • C#使用HttpClient的正确方式你了解吗
    C#使用HttpClient的正确方式你了解吗
    2021-11-11
  • C# datagridview、datagrid、GridControl增加行号代码解析
    C# datagridview、datagrid、GridControl增加行号代码解析
    2021-10-10
  • C# 显示、隐藏窗口对应的任务栏
    C# 显示、隐藏窗口对应的任务栏
    2021-10-10
  • C# 实现绘制PDF嵌套表格案例详解
    C# 实现绘制PDF嵌套表格案例详解
    2021-11-11
  • Unity 制作一个分数统计系统
    Unity 制作一个分数统计系统
    2021-11-11
  • C# StackExchange.Redis 用法汇总
    C# StackExchange.Redis 用法汇总
    2021-11-11
  • 基于C#实现端口扫描器(单线程和多线程)
    基于C#实现端口扫描器(单线程和多线程)
    2021-11-11
  • C# Quartzs定时器的使用教程
    C# Quartzs定时器的使用教程
    2021-11-11
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号