directsoundDirectsound和声卡驱动之间是什么关系?是不是只有Directsound就可以了而不需要声卡驱动?
directsound 时间:2021-06-19 阅读:(
)
如何让DirectSound支持3D立体声效果
1. 创建DirectSound8对象CComPtr<IDirectSound8> dsound; HRESULT hres = DirectSoundCreate8(NULL, &dsound, NULL); 2. 创建含有DSBCAPS_CTRL3D能力的DirectSoundBuffer对象CComPtr<IDirectSoundBuffer> dsbuffer; DSBUFFERDESC dsbd = {sizeof(dsbd)}; ... // 正确初始化SoundBufferDescrible成员 dsbd.dwFlags |= DSBCAPS_CTRL3D; hres = dsound->CreateSoundBuffer(&dsbd, &dsbuffer, NULL); 3. 从DirectSoundBuffer对象中获取DirectSound3DBuffer对象CComPtr<IDirectSound3DBuffer> ds3dbuffer; hres = dsbuffer->QueryInterface(IID_IDirectSound3DBuffer, (LPVOID *)&ds3dbuffer); 4. 从PrimarySoundBuffer对象中获取DirectSound3DListenerCComPtr<IDirectSoundBuffer> primaryBuffer; DSBUFFERDESC dsbd = {sizeof(dsbd)}; dsbd.dwFlags = DSBCAPS_CTRL3D | DSBCAPS_PRIMARYBUFFER; hres = dsound->CreateSoundBuffer(&dsbd, &primaryBuffer, NULL); CComPtr<IDirectSound3DListener> ds3dlistener; hres = primaryBuffer->QueryInterface(IID_IDirectSound3DListener, (LPVOID *)&ds3dlistener); 5. 在帧循环中设置DirectSound3DBuffer对象DS3DBUFFER ds3db = {sizeof(ds3db)}; hres = ds3dbuffer->GetAllParameters(&ds3db); ds3db.vPosition = ...; // 设置Position ds3db.vVelocity = ...; // 设置Velocity ds3db.flMinDistance = 5; ds3db.flMaxDistance = 50; ds3db.dwMode = DS3DMODE_NORMAL; hres = ds3dbuffer->SetAllParameters(&ds3db, DS3D_DEFERRED); 6. 在帧循环中设置DirectSound3DListener对象DS3DLISTENER ds3dl = {sizeof(ds3dl)}; hres = ds3dlistener->GetAllParameters(&ds3dl); ds3dl.vPosition = ...; // 设置Position ds3dl.vOrientFront = ...; // 设置向前的矢量,注意旋转变换 ds3dl.vOrientTop = ...; // 设置向上的矢量,注意旋转变换 ds3dl.flDistanceFactor = 1.0f; ds3dl.flRolloffFactor = 0.05f; ds3dl.flDopplerFactor = 0; hres = ds3dlistener->SetAllParameters(&ds3dl, DS3D_IMMEDIATE); 7. 在合适的时机更新及播放DirectSoundBuffer,就可以得到效果了unsigned char * buffer1, * buffer2; DWORD bytes1, bytes2; hres = dsbuffer->Lock(0, 0, (LPVOID *)&buffer1, &bytes1, (LPVOID *)&buffer2, &bytes2, DSBLOCK_ENTIREBUFFER); ... // 更新声音缓存 hres = dsbuffer->Unlock(buffer1, bytes1, buffer2, bytes2); // 找到合适的时机 hres = dsbuffer->Play(0, 0, DSBPLAY_LOOPING);声卡DirectSound是什么意思
DirectX 使程序能够轻松确定计算机的硬件性能,然后设置与之匹配的程序参数。
该程序使得多媒体软件程序能够在基于 Windows 的具有 DirectX 兼容硬件与驱动程序的计算机上运行,同时可确保多媒体程序能够充分利用高性能硬件。
Microsoft DirectSound API 为程序和音频适配器的混音、声音播放和声音捕获功能之间提供了链接。
DirectSound 为多媒体软件程序提供低延迟混合、硬件加速以及直接访问声音设备等功能。
维护与现有设备驱动程序的兼容性时提供该功能。
现在的很多集成声卡都支持,基本这已经是一个标准了,大家设计的时候都已经根据Microsoft DirectSound API设计芯片,编写程序DirectSound 在那里?
directsound 它是 directx 中的一个组件,同时, directsound 本身就是一个声音合成引擎,是一个软件。
只要装了directx就默认集成了,一般的声卡驱动里也有...C#里边怎么用directsound混音?
第1步:下载并安装DirectX 9c第2步:建立C#应用程序新建一个C#的windows应用程序,名称这里输mydirectXtest。
解决方案管理器里,右击项目,“添加引用”,选中DirectX和DirectSound,如下图:
在Form1.cs里面添加:
using Microsoft.DirectX;
using Microsoft.DirectX.DirectSound;
往Form1上面拉一个Label和一个Button,在Button onclick事件里面写入:1// 建立声音设备
2Microsoft.DirectX.DirectSound.Device dev =
3 new Microsoft.DirectX.DirectSound.Device();
4
5dev.SetCooperativeLevel(this,
6 Microsoft.DirectX.DirectSound.CooperativeLevel.Normal);
7
8// 为声音建立二级缓冲区
9try
10{
11 Microsoft.DirectX.DirectSound.SecondaryBuffer snd =
12 new Microsoft.DirectX.DirectSound.SecondaryBuffer(
13 "../../NewDrums.wav", dev);
14
15 // 播放声音
16 snd.Play(0, Microsoft.DirectX.DirectSound.BufferPlayFlags.Default);
17}
18catch (Exception ex)
19{
20 label1.Text = ex.ToString();
21}
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:1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Text;
7using System.Windows.Forms;
8
9using Microsoft.DirectX;
10using Microsoft.DirectX.DirectSound;
11
12
13namespace mydirectXtest
14{
15 public partial class Form1 : Form
16 {
17 public Form1()
18 {
19 InitializeComponent();
20 }
21
22 private void button1_Click(object sender, EventArgs e)
23 {
24
25 // 建立声音设备
26 Microsoft.DirectX.DirectSound.Device dev =
27 new Microsoft.DirectX.DirectSound.Device();
28
29 dev.SetCooperativeLevel(this,
30 Microsoft.DirectX.DirectSound.CooperativeLevel.Normal);
31
32 // 为声音建立二级缓冲区
33 try
34 {
35 Microsoft.DirectX.DirectSound.SecondaryBuffer snd =
36 new Microsoft.DirectX.DirectSound.SecondaryBuffer(
37 "../../NewDrums.wav", dev);
38
39 // 播放声音
40 snd.Play(0, Microsoft.DirectX.DirectSound.BufferPlayFlags.Default);
41 }
42 catch (Exception ex)
43 {
44 label1.Text = ex.ToString();
45 }
46
47 }
48 }
49}到这里OK ! 。
。
。
。
应该行的 ,慢慢摸索下吧Directsound和声卡驱动之间是什么关系?是不是只有Directsound就可以了而不需要声卡驱动?
不,声卡驱动是发声用的。
机器必须装了声卡驱动才可以正常发出声音,不装声卡驱动就谈不上directsound了。
directsound是立体音效的,相当于声音的修饰作用。
这两天Linode发布了十八周年的博文和邮件,回顾了过去取得的成绩和对未来的展望。作为一家运营18年的VPS主机商,Linode无疑是有一些可取之处的,商家提供基于KVM架构的VPS主机,支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,所有机器提供高出入网带宽,最低仅$5/月($0.0075/小时)。This month marks Linod...
Bluehost怎么样,Bluehost好不好,Bluehost成立十八周年全场虚拟主机优惠促销活动开始,购买12个月赠送主流域名和SSL证书,Bluehost是老牌虚拟主机商家了,有需要虚拟主机的朋友赶紧入手吧,活动时间:美国MST时间7月6日中午12:00到8月13日晚上11:59。Bluehost成立于2003年,主营WordPress托管、虚拟主机、VPS主机、专用服务器业务。Blueho...
RAKsmart怎么样?RAKsmart是一家由华人运营的国外主机商,提供的产品包括独立服务器租用和VPS等,可选数据中心包括美国加州圣何塞、洛杉矶、中国香港、韩国、日本、荷兰等国家和地区数据中心(部分自营),支持使用PayPal、支付宝等付款方式,网站可选中文网页,提供中文客服支持。本月商家继续提供每日限量秒杀服务器月付30.62美元起,除了常规服务器外,商家美国/韩国/日本站群服务器、1-10...
directsound为你推荐
ipv6电视什么是ipv6网络电视 有什么好处4k超高清视频下载哪里有4K片源下载啊?补充:刚入手了一个4k电视盒,小美盒子V9,说是支持4k。正好我的电视机是4k的,想知道哪里有得下载呢?有朋友说我傻,现在基本上没有4k片源下载,而且不知道什么时候才有。等到流行的时候也许这个机器又淘汰啦!我该怎么办啊?netbios协议NetBIOS协议起什么作用?erp系统教程如何使用ERP系统操作?东兴证券网站东兴证券超强版下载,东兴证券超强版v6下载官方网站,东兴证券软件下载gbk内码Gbk内码查询彩信平台请问彩信平台升级怎么改参数能告诉我具体步骤吗?网页背景音乐代码网页背景音乐代码,我要哪怕转换网页都不间断的那种ibooks支持什么格式ibooks使用的最佳格式是什么格式?flv转aviflv格式的视频怎么转换成avi格式?
免费cn域名注册 info域名 京东云擎 蜗牛魔方 e蜗 服务器合租 东莞服务器 闪讯官网 空间购买 外贸空间 带宽租赁 免费的asp空间 论坛主机 日本代理ip 电信宽带测速软件 广州服务器托管 hdroad godaddyssl alexa搜 ping值 更多