而DirectSound就能够完美的解决混音问题,并且它直接针对硬件编程,最大程度上减小了游戏进程逻辑对于声音播放效果的影响。 在这篇文章里,先谈谈DirectSound的使用。 3.假设此时发现有些 Directsound的类名无法识别,那么请检查工具菜单项的设置选项中文件夹的设置,看是否在lib与include中都将DirectX SDK相关内容都放在第一位,由于在编译连接中第一位的库 初始化工作第二步,DirectSound对象的建立 (1)建立DirectSound对象 (2)设定共享层级 (3)设定主缓冲区的格式 首先要建立一个代表声卡的DirectSound /*——————————————————————————–*/ // 以下是我写的一个使用DirectSound的样例: ////////////////////////////下面为头文件部分 = DS_OK) MessageBox(hwnd, “建立 DirectSound 对象失败!”
第二节DirectSound结构 DirectSound的功能模块包括播放、声音缓冲区、三维音效、音频抓获、属性集等。 DirectSound playback建构于IDirectSound COM接口之上。 主缓冲区由DirectSound自动创建,而副缓冲区需由应用程序来创建。DirectSound将副缓冲区中的声音混合后,存入主缓冲区,再输出到相应播放设备。 第二节DirectSound结构 DirectSound的功能模块包括播放、声音缓冲区、三维音效、音频抓获、属性集等。 主缓冲区由DirectSound自动创建,而副缓冲区需由应用程序来创建。DirectSound将副缓冲区中的声音混合后,存入主缓冲区,再输出到相应播放设备。
音频处理的相关技术: 采集麦克风输入 采集声卡输出 将音频数据送入声卡进行播放 对多路音频输入进行混音处理 在Windows操作系统上,音频处理技术主要是采用微软提供的相关API:Wave系列API函数、DirectSound DirectSound 可实现多个声音的混合播放。DirectSound可充分使用声卡的内存资源,同时也提供了3D声效算法,模拟出真实的3D立体声。 基于directx框架,directx 10之就没有了对directsound的支持,已经将directsound封装到directshow里面去了 支持XP及之后的Windows系统,支持麦克风
Output, MME (0 in, 2 out) < 3 扬声器 (Conexant SmartAudio HD), MME (0 in, 2 out) 4 主声音捕获驱动程序, Windows DirectSound (2 in, 0 out) 5 麦克风 (Conexant SmartAudio HD), Windows DirectSound (2 in, 0 out) 6 主声音驱动程序, Windows DirectSound (0 in, 2 out) 7 扬声器 (Conexant SmartAudio HD), Windows DirectSound (0 in, 2 out) 8
DirectXAPI函数 DirectX的API主要由DirectGraphics,DirectInput,DirectPlay,DirectMusic,DirectSound组成。 DirectSound:DirectSound是负责高级声音处理的DirectX API。 5.动手写一个窗口 在Windows中使用Direct3D创建Win32窗口非常简单。
相关平台播放音频接口播放声音; 可以播放解码播放MP3的库很多,如果VLC,ffplay,或者directshow,解码库一般可以用lame,播放播放库可以用SDL,或者Windows上的waveout,directsound Play(); 示例2: 从sfWaveIn播放枚举值可以看出,应该是支持音频输入设备采集播放的; 这个示例讲解了打开音频设备,播放,但是关于第一个参数的音频名称,可以通过directshow,或者directsound 等方法枚举音频设置; 所以这个示例,可以替代portaudio,或者directsound,或者wavein等一些方法,如果不想播放声音,可以设置音量为0; player = CreateZPlay()
UMX、.WAV、.WMA、.WV、.XM、.DSF、.DFF、MKA、AA3、AT3、OMA、.WebM、.MPEG-DASH (YouTube) * CUE 表支持 *输出支持 DirectSound
第五节 DirectSound Microsoft DirectSound的API是DirectX平台软件开发工具(SDK)程序员指南的声音组件。 DirectSound能够自动地利用硬件加速,包括硬件混音和硬件声音缓冲。 下图显示了DirectSound与系统中其它声音组件的关系: 关于DirectSound,在以后还将有更加详细的讲解。 第五节 DirectSound Microsoft DirectSound的API是DirectX平台软件开发工具(SDK)程序员指南的声音组件。 下图显示了DirectSound与系统中其它声音组件的关系: 关于DirectSound,在以后还将有更加详细的讲解。
Windows Media Center Edition and Media Player: WavPack comes with a DirectSound Filter. A DirectSound Filter is also available for FLAC.
bit OLE 2.0 API usebormm.lib uuid.lib GUID static library for miscellaneous Direct 3D, DirectDraw, DirectSound
DirectX Runtime 核心组件有Direct3D, DirectSound和DirectInput, 可以看作是操作系统的一部分.
DirectX Runtime 核心组件有Direct3D, DirectSound和DirectInput, 可以看作是操作系统的一部分.
DirectX的家族成员很多,而且各有各的本领,就如DirectDraw和Direct3D负责二维图形图像/三维动画加速、DirectMusic和DirectSound负责交互式音乐/环境音效处理一样, DirectShow技术是建立在DirectX的DirectDraw和DirectSound 的基础之上的,它通过 DirectDraw 对显卡进行控制以显示视频,通过DirectSound 对声卡进行控制以播放声音 DirectShow的滤波器支持多种外部设备,包括本地文件系统、视频采集卡、有线电视接口、视频播放卡(通过 DirectDraw 或 Graphic Device Interface) 、音频播放卡(通过DirectSound
声音部分中最主要的API是DirectSound,除了播放声音和处理混音之外,还加强了3d音效,并提供了录音功能。我们前面所举的声卡兼容的例子,就是利用了DirectSound来解决的。
音频播放可以选择WAVE系列函数,或者DirectSound的接口等,这里我选择使用WAVE接口,原因当然是比较简单啦 :) ?
/Transform (3) Enhanced Video Renderer(Custom Present) (4) Built-in Audio Codec/Transform (5) DirectSound
第七节初始化声音 这个部分主要调用函数IinitSound()进行对DirectSound进行初始化和声音的播放的工作。 它的工作过程为: 调用DSEnable(hwndOwner)进行DirectSound的初始化:先用bUseDSound = GetProfileInt("FoxBear", "use_dsound", { DSDisable(); Msg("SetCooperativeLevel FAILED"); return FALSE; } 用于创建DirectSound
overviews are included in this node: Broadcast Architecture Color Management DirectX 5 DirectDraw DirectSound
然而,标准的Windows默认音频系统采用的是“全局混合机制(DirectSound共享模式)”,这会导致两类严重的痛点:听觉强干扰与疲劳:当你正沉浸在排查核心Bug的逻辑链中,系统右下角突然弹出的通讯软件提示音 将默认的“常规音频驱动(DirectSound)”切换为“WASAPI独占高精度输出”(如果使用专业录音声卡,则选择“ASIO驱动输出”)。
不同的平台有不同的渲染 API 和方法,比如:Windows 的 DDraw/DirectSound,Android 的 SurfaceView/AudioTrack,跨平台的如:OpenGL 和 ALSA