网站大量收购闲置独家精品文档,联系QQ:2885784924

在C#下利用DirectSound实现声音播放.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
建立第一个directX程序——在C#下利用DirectSound实现声音播放 收藏 这是给directX初学者的教程,如果你是大虾,大可不必理会本文。 第1步:下载并安装DirectX 9 SDK DirectX 9 SDK下载地址:/directx/sdk/ ,目前最新版本是2006年8月,下载包500MB多。 第2步:建立C#应用程序 新建一个C#的windows应用程序,名称这里输mydirectXtest。 解决方案管理器里,右击项目,“添加引用”,选中DirectX和DirectSound,如下图: 在Form1.cs里面添加: using Microsoft.DirectX; using Microsoft.DirectX.DirectSound; 往Form1上面拉一个Label和一个Button,在Button onclick事件里面写入: // 建立声音设备 Microsoft.DirectX.DirectSound.Device dev = new Microsoft.DirectX.DirectSound.Device(); dev.SetCooperativeLevel(this, Microsoft.DirectX.DirectSound.CooperativeLevel.Normal); // 为声音建立二级缓冲区 try ...{ Microsoft.DirectX.DirectSound.SecondaryBuffer snd = new Microsoft.DirectX.DirectSound.SecondaryBuffer( ../../NewDrums.wav, dev); // 播放声音 snd.Play(0, Microsoft.DirectX.DirectSound.BufferPlayFlags.Default); } catch (Exception ex) ...{ label1.Text = ex.ToString(); } Microsoft.DirectX.DirectSound.Device dev = new Microsoft.DirectX.DirectSound.Device(); ——建立device的类; dev.SetCooperativeLevel(this, Microsoft.DirectX.DirectSound.CooperativeLevel.Normal); ——设置CooperativeLevel。因为Windows是多任务的系统,设备不是独占的,所以在使用设备前要为这个设备设置CooperativeLevel。调用Device的SetCooperativeLevel方法:其中,第一个参数是一个Control;第二个参数是个枚举类型,用来设置优先级的。 SecondaryBuffer snd = new Microsoft.DirectX.DirectSound.SecondaryBuffer(../../NewDrums.wav, dev); —— 开辟缓冲区。声音设备有个自己的缓冲区,叫主缓冲区。系统中,一个设备有唯一的主缓冲区。由于windows是多任务的,所以可以有几个程序同时利用一个设备播放声音,每个程序都自己开辟一个二级缓冲区,放自己的声音。 这里需要注意播放声音的路径,一开始初学者容易把wav声音放到项目里面,在SecondaryBuffer里面直接写“NewDrums.wav”,调试是会显示“应用程序错误”。因为调试的默认文件夹是Debug,需要的声音文件应该放到Debug目录下,用“NewDrums.wav”的格式;或者放在项目下面,用“../../NewDrums.wav”的格式。很傻的错误吧。 这样,调试程序,按button就会播放声音了。全部代码如下: Form1.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Microsoft.DirectX; using Microsoft.DirectX.DirectSound; namespace mydirectXtest ...{ public partial class Form1 : Form ...{ public Form1() ...{

文档评论(0)

185****7617 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档