DirectSound开发手册
- 格式:pdf
- 大小:299.71 KB
- 文档页数:40
directsound 用法英文回答:DirectSound is a software component of Microsoft's DirectX API that provides a way for applications to access audio devices, such as sound cards, and play and manipulate audio data. It is commonly used in video games and multimedia applications to provide sound effects, background music, and voiceovers.To use DirectSound, you need to include the necessary header files and link against the DirectSound library in your development environment. Once you have set up the development environment, you can create a DirectSound object, which represents the audio device, and initialize it with the desired settings.Once the DirectSound object is initialized, you can create secondary sound buffers, which are used to store and play audio data. You can load audio data from files orcreate it programmatically. DirectSound supports various audio formats, such as WAV and MP3.To play audio, you need to fill the secondary sound buffer with the audio data and call the Play method. Youcan control various aspects of the playback, such as volume, panning, and frequency, using methods provided by the DirectSound interface.DirectSound also provides features for managingmultiple sound sources and applying effects to the audio. You can create multiple sound buffers and mix them together to create a complex audio environment. You can also apply effects, such as reverb or echo, to individual soundbuffers or the entire audio output.In addition to playing audio, DirectSound also provides features for capturing audio from a microphone or otherinput devices. You can create a capture buffer, set the desired format and properties, and then start capturing audio data.Overall, DirectSound is a powerful and flexible API for working with audio in Windows applications. It provides a wide range of features and options for playing, manipulating, and capturing audio data.中文回答:DirectSound是微软DirectX API的一个软件组件,它提供了一种让应用程序访问音频设备(如声卡)并播放和操作音频数据的方式。
User's Manual Digital Digital Sound SlaveInhaltsverzeichnisEinführung (3)Hardware (5)Schaltplan und Layout (5)Architektur (6)Programmierung (7)Integrierte Voice-Prompts (7)Integrierte Voice-Macros (8)Ansteuerung des Digital Sound Slaves (20)Abbildungsverzeichnis (21)Literaturverzeichnis (22)EinführungDiese Beschreibung richtet sich an Entwickler von Mikrocontroller-Systemen. Zielsetzung hier beschriebenen Digital Sound Slaves ist es, einem Mikrocontroller-gesteuertem Kleinstsystem eine …Stimme“ zu geben und so eine zeitgemäße Benutzerführung auch in kleinen Anwendungen zuermöglichen.Dies ist zumeist mit Board-Mitteln eines MC-Systems nicht, oder nur mitgroßem Aufwand möglich. Häufig konsumiert diese Funktion dann den Großteil der Systemressourcen, wobei die Sound-Wiedergabe meistens ein Kompromiss bleibt.Die Entwicklung des Digital Sound Slaves soll die angesprochenen Nachteile in einfacher Weise beheben.Das Digital Sound Slave besitzt folgende Eigenschaften:•Einfache Programmierung•Wiedergabe von beliebigen WAV-Files und damit gut verständliche Sprachwiedergabe•Einfacher elektrischer Anschluss des Digital Sound Slaves an das MC-System•Einfache Nutzung des Digital Sound Slaves mittels API•Minimale Systembelastung durch die Sound-Wiedergabe•Direkter Betrieb eines Kleinlautsprechers bis 1 WAbbildung 1: Modul-Vorderseite Abbildung 2: Modul-RückseiteAbbildung 3: Modul mit externem LautsprecherAbbildung 4: Beispiel mit PCB-Lautsprecher und Horn (Unterseite)Das Digital Sound Slave ist in der Abbildung mit einem SMD-Miniatur-Lautsprecher mit Horn bestückt. Das Modul verfügt aber auch über einen externen Anschluss für einen Lautsprecher der Wahl.Abbildung 5: Beispiel mit PCB-Lautsprecher und Horn (Oberseite)HardwareDer Analogkreis des Moduls wird in der Regel mit 5 V versorgt um die nominale Leistung von einem Watt zu erreichen. Der Digitalteil des Moduls wird mit 3,3 V direkt versorgt. Soll das komplette Modul mit 3,3 V versorgt werden, so ist der Löt-Jumper entsprechend zu setzen.Schaltplan und LayoutAbbildung 6: SchaltplanAbbildung 7: LayoutArchitekturDas Digital Sound Slave verwendet einen integrierten Signalprozessor ISD2360 (ISD-Chip-Corder) von Fa. Nuvoton zur Signalerzeugung. Dieser Chip kann ohne Verstärker direkt einen 1W Kleinlautsprecher (bei 5V) an den Chipausgängen SPK+ und SPK- betreiben. Ferner ist der Chip mit 3,3-5V (max. 1 W) zu versorgen.Als Interface dienen entweder 5 GPIO Pins, mit denen Voice-Files getriggert (steigende/fallende Flanken) werden können, oder der Chip wird über SPI direkt angesteuert. Die zweite Möglichkeit bietet einen sehr flexiblen Einsatz.Dabei können in dem 2Mbit großen Speicher auf dem Chip ca. 64 Sekunden Voice-Prompts hinterlegt werden.Ein direktes …streamen“ über SPI zur direkten Ausgabe ist ebenfalls möglich. Dies setzt aber große Speicherressourcen in dem Mikrocontroller-System voraus. Dabei verwaltet der Chip-Corder bis zu 3 unabhängige Sound-Kanäle die bei Bedarf überlagert simultan ausgegeben werden.Die Ausgaben werden entweder direkt über Voice-Prompts (Wave-File) aus dem internen Chip-Speicher, oder per SPI-Streaming bedient.Dabei kennt der Chip Voice-Prompts, welche die ultimative Sound-Ressource darstellt und Voice-Macros, mit deren Hilfe Voice-Prompts aneinander gehängt werden können (Script-Sprache z.B. ganze Sätze aus Wortschnipsel). Voice-Macros können neben linearen Abrufen von Voice-Prompts auch Wiederholschleifen oder prozedurale Schleifen abarbeiten und sind damitmächtige Werkzeuge in der Wiedergabetechnik.Der ISD-Chip-Corder funktioniert im Stand-alone Modus, als auch im SPI-Modus (simultan). Der Chip muss aber, bevor er ins Zielsystem eingebracht wird, entsprechend programmiert werden. Dies findet mit der Software …Voice Prompt Editor“ von Nuvoton statt. Diese kann von der Nuvoton-Web-Seite heruntergeladen werden.Für weiterführende Informationen siehe [ISD2360 DESIGN GUIDE].ProgrammierungUm den Einstieg möglichst einfach zu gestalten, ist das Digital Sound Slave bereits mit einem Satz Voice-Prompts und Voice-Macros geladen und kann direkt verwendet werden.Soll dieser Inhalt verändert oder durch einen anderen ersetzt werden, ist das mit der oben erwähnten Software möglich.Integrierte Voice-PromptsVoice-Prompts sind komprimierte und für den ISD2360 aufbereitete Wave-Files. Sie stellen die ultimative Sound-Quelle dar und nehmen erfahrungsgemäß den größten Platz im internen Speicher des ISD2360 ein. Daher muss die Auswahl der zu integrierenden Voice-Prompts mit Bedacht getroffen werden.Allgemein ist eine Sample-Rate von 8kHz bei 16 Bit/sample und Mono zuwählen.Die folgenden Voice-Prompts sind im Auslieferungszustand programmiert.VP Westminster – BigBenDiese Tonaufnahme des Westminster-Glockenspiels wurden als kompletter Satz aller Spielmuster im Internet zum lizenzfreien Download angeboten. Diese wurden dann in die einzelnen Glocken zerlegt und hier nach Glocken geordnet abgespeichert.Dabei gibt es 2 Arten von Samples:1.Anschlag der Glocke mit der Dauer y bis zum nächsten Glockenschlaginnerhalb eines Blocks.2.Anschlag und Ausklingen der Glocke mit der Dauer y + x bis Blockende Siehe auch “Integrierte Voice-Macros“Mit diesem Satz von Voice Prompts kann das komplette Glockenspiel zusammengesetzt werdenIntegrierte Voice-MacrosVoice-Macros sind Skripte, mit denen man Voice-Prompts zusammenhängen kann, so dass komplexe Klangaggregate entstehen. So werden gesprocheneSätzen aus einzelnen Wortschnipseln, oder eine Komposition aus einzelnen Noten zusammengesetzt.VM_POISystem-Macro: Power On InitDieses wird immer nach Spannungswiederkehr von der Hardware gestartet.•Initialisiert GPIO #5 zum Trigger Eingang. Bei steigender Flanke wird Voice-Macro #3 getriggert.•In R7 wird 0x21 hinterlegt, als Vorbesetzung, dass nur initialisierte Aufrufe der Stundenfunktion vorkommen können•Als Fertigmeldung der Initialisierung kommt ein FastBeepVM_PUSystem-Macro: Power UpDieses Makro wird durch das PU-Kommando x10 (SPI) gestartet.•Initialisiert den Signalpfad auf Playback und schaltet den PCM frei•Setzt die Lautstärke auf das Maximum•In R7 wird 0x21 hinterlegt, als Vorbesetzung, dass nur initialisierte Aufrufe der Stundenfunktionen vorkommen können.•In diesem Fall muss …Finish“ gewählt werden, da bei …PD“ der Chip nicht mehr ansprechbar wäre.VM_WAKEUPSystem-Macro: Wake UpDieses Makro wird durch Hardware gestartet und weckt den Chip aus dem Power Down Mode auf. Dies findet dann statt, wenn an einem initialisiertenGPIO-Eingang ein Trigger Ereignis erkannt wird.•Initialisiert den Signalpfad auf Playback und schaltet den PCM frei•Setzt die Lautstärke auf das MaximumVM_GPIO5User-Macro: Aktion bei steigender Flanke an GPIO5Dieses Makro wird bei dem in POI initialisierten Trigger Ereignis an GPIO5 von der Hardware aufgerufen.•Führt das VM mit der #2E aus. Das sind 2 Glockenschläge, kann z.B. als Türglocke verwendet werden.VM_PU_CH0 / 1User-Macro: Platzhalter, derzeit leerVM_SysStartupInitiatedUser-Macro: gesprochener Satz …System Start up Initiated“VM_ShutdownInitInTmUser-Macro: gesprochener Satz …System Shutdown Initiated in T minus“.In den Registern R2, R3, R4 wird jeweils der Index der Sekundenstellen Hunderter, Zehner, Einer übergeben.VM_SysResetSeqInProcessUser-Macro: gesprochener Satz …System Reset in Process“VM_SysShutdownSeqTermiUser-Macro: gesprochener Satz …System Shutdown Sequence Terminated“VM_TelefonXUser-Macro: Klang eines alten Glocken-TelefonVM_EIN / AUSUser-Macro: EIN, derzeit leerVM_SirenVM Westminster – BigBenExkurs Westminster:Das Westminster – Glockenspiel hat eine durchaus komplexe Abfolge von Glockenanschlägen, deren Struktur hier kurz analysiert werden soll.•Die kleinste Einheit des Glockenspiels ist der Glockenschlag.• 4 Glockenschläge mit der Dauer y (= 1,1s) bilden einen Block, der durch die Zeitdauer x (= 2,2s Ausschwingzeit) vom nächstenBlock getrennt ist.Blocklänge = 4 * y + x•Ein Satz ist 1 – 4 Blöcke lang:1st Quarter: Satzlänge = 1 Block Satzlänge = 1 (4 * y + x)2nd Quarter: Satzlänge = 2 Blocks Satzlänge = 2 (4 * y + x)3rd Quarter: Satzlänge = 3 Blocks Satzlänge = 3 (4 * y + x)4th Quarter: Satzlänge = 4 Blocks Satzlänge = 4 (4 * y + x)•Dabei wird die volle Stunde (4th Quarter) mit der Stundenzahl an BigBen-Schlägen quittiert.Dies startet nach einer Wartezeit tw von 1,1s nach Satzende.•Die Zeitdauer zzwischen den Stundenschlägen beträgt 2,2s.•Die Ausschwingdauer zx von BigBen beträgt ca. 5,5sFür den Stundenschlag wird nur das Makro VM_WM_h aufgerufen. Zuvor muss ins Register R7 noch der Wert 0x20 + <Stundenzahl(1..13)> eingeschrieben werden (alles per SPI).1.CFG(R7_L, 0x2<h>)0xB8,0x2E,0x2<h>0x2<h> R7_L2.CFG(R7_H, 0x00)0xB8,0x2F,0x000x00 R7_L3.PLAY # VM_WM_h0xB0,0x00,0x20Spielt VM_WM_hVM_TöneUser-Macro: EIN, derzeit leerVM_SirenVM_00 – 10User-Macro: gesprochenes Wort: Zahl 0 – 10 in EnglishVM Westminster – BigBenExkurse Westminster:Das Westminster – Glockenspiel hat eine durchaus komplexe Abfolge vonGlockenanschlägen, deren Struktur hier kurz gezeigt werden soll.•Die kleinste Einheit des Glockenspiels ist der Glockenschlag.• 4 Glockenschläge mit der Dauer y (= 1,1s) bilden einen Block, der durch die Zeitdauer x (= 2,2s Ausschwingzeit) vom nächstenBlock getrennt ist.Blocklänge = 4 * y + x•Ein Satz ist 1 – 4 Blöcke lang:1st Quarter: Satzlänge = 1 Block Satzlänge = 1 (4 * y + x)2nd Quarter: Satzlänge = 2 Blocks Satzlänge = 2 (4 * y + x)3rd Quarter: Satzlänge = 3 Blocks Satzlänge = 3 (4 * y + x)4th Quarter: Satzlänge = 4 Blocks Satzlänge = 4 (4 * y + x)•Dabei wird die volle Stunde (4th Quarter) mit der Stundenzahl an BigBen-Schlägen quittiert.Dies startet nach einer Wartezeit tw von 1,1s nach Satzende.•Die Zeitdauer z zwischen den Stundenschlägen beträgt 2,2s.•Die Ausschwingdauer zxvon BigBen beträgt ca. 5,5sFür den Stundenschlag wird nur das Makro VM_WM_h aufgerufen. Zuvor muss ins Register R7 noch der Wert 0x20 + <Stundenzahl(1..13)> eingeschrieben werden (alles per SPI).1.CFG(R7_L, 0x2<h>)0xB8,0x2E,0x2<h>0x2<h> R7_L2.CFG(R7_H, 0x00)0xB8,0x2F,0x000x00 R7_LSpielt VM_WM_h3.PLAY # VM_WM_h 0xB0,0x00,0x20VM Tür-Glocken ExtraktVM TöneUser-Macro: EIN, derzeit leerVM_SirenVM_TestDas Test-Voice-Makro ist das letzte Makro das genutzt wird. Es sollte nicht umbenannt, oder in der Sequenz nach vorne geschoben werden, da dieser Name als Ende Marke im Programm genutzt wird.Ansteuerung des Digital Sound SlavesFür die ersten Schritte bei der Integration wird ein ARDUINO-Example inklusive einer Arduino-Library zur Vergnügung gestellt. Dieses kann im Download-Bereich heruntergeladen werden.Der GPIO 5 Anschluss löst bei Betätigung (Verbindung zu GND) ein Test-Macro aus. Dieses demonstriert das zusammensetzen von Wort-Schnipsel zu vollwertige Sätze und gibt auch den kompletten Voice-Prompt-Inhalt des internen Speichers aus. Dadurch ist auch im Stand-alone-Betrieb der programmierte Inhalt des Chips leicht zu prüfen.AbbildungsverzeichnisAbbildung 1: Modul-Vorderseite (3)Abbildung 2: Modul-Rückseite (3)Abbildung 3: Modul mit externem Lautsprecher (4)Abbildung 4: Beispiel mit PCB-Lautsprecher und Horn (Unterseite) (4)Abbildung 5: Beispiel mit PCB-Lautsprecher und Horn (Oberseite) (4)Abbildung 6: Schaltplan (5)Abbildung 7: Layout (6)Literaturverzeichnis[ISD2360 DATA SHEET]ISD2360 Data SheetRev. 1.00, 15.01.2020Nuvoton[ISD2360 DESIGN GUIDE]ISD2360 Design GuideRev. 1.15, 03.08.2016Nuvoton[ISD2360 DEMO USERM]ISD-DEMO2360 User ManualRev. 1.1, 13.04.2016Nuvoton[ISD2360 ESMINIUSB UM]ISD-ES_MINI_USB User ManualRev. 1.0, 18.02.2016Nuvoton[ISD2360 WIN IDE]ISD-VPE2360 for Windows7 64bitIDE-Software... Made in GermaySignalgeneratorenTastköpfePräzisionsverstärkerMessbereichserweiterungenDSP-SystemeDoc. Nr.: 0130-001v1.0, 04.10.2020, Änderungen vorbehalten HUBER SIGNAL PROCESSINGUnternbergstr. 1383278 TraunsteinGermany Tel:+49 (0)861.213978-0 Fax:+49 (0)861.213978-40**********************© HUBER SIGNAL PROCESSING。
微软所提供开发工具包括一系列专为游戏和交互DircetX DirectSound 以及Direct3Dsound音频媒体的程序设计人员开发的强有力的工具。
DirectX充分利用了声音加速硬件以尽可能的提高其运行速度,减少CPU 的占用时间。
但是,音频信号仍然对整个系统的运行产生着重大影响。
本文所描述的技术将帮助用户使用DirectSound 以及Direct3DSound以减少音频重放对系统运行的影响。
前言微软所提供的开发工具中DirectX 波形声音重放设备是为支持在Windows 95 和Windows NT 中开发游戏和交互媒体应用程序而设计的。
DirectSound 和Direct3DSound允许你在同一个三维空间中同时运行多个声音文件和移动声音源。
只要有可能DirectX ,将充分利用声音加速设备来改善运行状况和减少CPU的使用。
但这并不是说你可在三维程序空间运行、编译充斥着大量声音代码的程序,并且随心所欲地将其移来移去。
如果你并没有注意如何使用计算机的声音资源你将很快发现,你的计算机的CPU周期绝大部分被你自己添加的一个户外历险游戏的44.1khz,16位立体声的优美声音所占去。
技巧和技术首先,我们来谈谈一些有关的定义。
你所熟悉的DirectSound包括以下一些术语:从缓冲区:是指用来执行波形数据的应用程序缓冲区。
每个执行的波形文件都有一个从缓冲区,每个这样的缓冲区都有自己特定的格式。
主缓冲区:是DirectSound的输出缓冲区。
一般说来,应用程序并非将波形数据直接写入主缓冲区。
相反,DirectSound 首先在从缓冲区中将波形数据加以合成,然后输入主缓冲区中。
注意:仅有一个主缓冲区,并且其格式决定了其输出格式。
静态缓冲区:包含了内存中的一个完整的声音。
因为,通过一次简单操作,你能在缓冲区中写入一个完整的声音。
所以,他们对于用户十分方便。
静态缓冲区通过声卡的合成加速执行。
流缓冲区:仅仅为声音的一部分,利用它,我们并不需要大量的内存就能运行较长的声音文件。
DirectSound---简易Wav播放器这篇⽂章主要给⼤家介绍下如何⽤DirectSound打造⼀个简易播放器,因为篇幅有限且代码逻辑较为复杂,我们只介绍下核⼼技术内容。
该播放器主要包括以下功能:播放、暂停播放进度提⽰。
1. DirectSound播放概念简介1.1 播放相关概念⾸先要介绍下DirectSound的设计理念:在DirectSound中,你需要播放的⾳频⼀般需要(也可以直接放⼊主缓冲区,但是操作上⽐较困难⽽且对其他DirectSound程序不太友好)放⼊⼀个被称为次缓冲区(Secondary Buffer)的地址区域中,该缓冲区由开发者⼈为创建操控。
由于DirectSound⽀持多个⾳频同时播放,所以我们可以创建多个缓冲区并同时播放。
在播放时,放⼊次缓冲区的⾳频先会被送⼊⼀个叫做主缓冲区(Primary Buffer)的地⽅进⾏混⾳,然后在送⼊硬件声卡中进⾏播放。
在Windows driver model,即WDM模式下,DirectSound实际上不能直接操作声卡硬件,所有的混⾳操作不是送给主缓冲区⽽是被送往内核混⾳器(Kernel Mixer)进⾏混⾳,然后由内核混⾳器送往硬件。
在WDM模式下,内核混⾳器替代了主缓冲区的功能位置。
1.2 缓冲区相关概念DirectSound的缓冲区类别⼤体可以分为两种:1) 静态缓冲区,2) 流缓冲区。
静态缓冲区就是⼀段较短的⾳频全部填充到⼀个缓冲区中,然后从头到尾播放;流缓冲区可以描述为⾳频流,实际上这种流也是通过单个有长度的缓冲区来抽象模拟的。
在流缓冲区模式下,单个缓冲区会被重复填充和播放,也就是说当DirectSound播放到缓冲区的最后⼀个尾部时,它会回到缓冲区的头部继续开始播放。
因此,在播放较长的⾳频⽂件时需要开发者⼿动循环填充缓冲区。
DirectSound中还有游标(cursor)的概念,游标分两种:1) 播放游标(play cusror),2) 写⼊游标(write cursor)。
Directshow教程0.11MSDN翻译系列作者:黄丁杰说明:如果有任何问题请联系din-je@。
是本人业余翻译的如果有错误请直接发到我邮箱我会立刻改正,directshow的其他文章我会在以后不断翻译出来。
如果觉得好请帮我作作宣传。
欢迎转载,但是禁止修改。
Directshow起步。
本章主要介绍diirectshow在编写程序时所需的基本概念。
在本章你可以总揽下directshow 技术。
你必须在总体上对本章的编程和媒体有所了解。
本章将介绍。
设置编译环境。
介绍directshow应用程序编程。
如何播放一个文件设置编译环境:你可以编译工程在命令行模式下或者在vs集成环境中头文件所有的directshow应用程序都使用下面的头文件。
Dshow。
H部分directshow接口需要附加的头文件。
这些文件会在接口的注意中给出。
所需的库文件directshow需要如下的库文件strmiidl。
Lib 该库包含CLSIDs和IIDs的接口。
所有的directshow都需要该库。
Quartz。
Lib 该库包含AMGetErrorText函数。
如果你没有调用该函数,该库没有用。
记住在你的编译环境中必须把directx SDK 的头文件库和连接库的目录作为vs优先搜索的路径。
这样可以保证编译的时候用的是最新版本的文件。
介绍directshow应用程序编程本章介绍编写一个directshow程序的基本技术和概念,读完本章你就可以写个你自己的directshow的应用程序了。
滤镜和图像滤镜directshow是由被称作滤镜的东西构成的。
滤镜是一个软件包用来执行对多媒体流的一些操作。
比如directshow的滤镜可以读出一个文件从视频捕捉设备获取视频流解码各种各样的多媒体格式,比如MPEG-1S视频。
传输视频和音频到屏幕和声卡。
滤镜几乎完成视频播放所需要的从输入到输出的所有功能。
比如一个MPEG-1的滤镜。
它可以输入MPEG码流然后输出图像帧用于后续显示在directshow程序中只要执行把滤镜连接在一起就可以了。
directsoundcreatebufferfromfile【实用版】目录1.引言:介绍 DirectSoundCreateBufferFromFile 函数2.函数参数3.函数功能4.使用方法5.示例代码6.结论:总结 DirectSoundCreateBufferFromFile 函数正文一、引言DirectSoundCreateBufferFromFile 函数是 DirectSound 库中的一个重要函数,它可以将文件中的音频数据读取到一个缓冲区,为播放音频做好准备。
本文将对该函数进行详细介绍,包括函数参数、功能、使用方法和示例代码。
二、函数参数DirectSoundCreateBufferFromFile 函数的原型为:HRESULT DirectSoundCreateBufferFromFile(_In_ LPDIRECTSOUNDBUFFER pParentBuffer,_In_ LPCSTR pszFileName,_In_ DWORD dwSize,_In_ DWORD dwFlags,_In_ DWORD dwFilter,_In_ DWORD dwPlayMode,_In_ DWORD dwCallbackReason,_In_ LPVOID pContext,_In_ DWORD cbSizeOFContext);参数说明:1.pParentBuffer:指向父缓冲区的指针。
2.pszFileName:指向音频文件路径的字符串指针。
3.dwSize:音频数据的大小,以字节为单位。
4.dwFlags:标志位,用于指定缓冲区的属性。
5.dwFilter:指定音频数据的处理方式。
6.dwPlayMode:指定音频数据的播放模式。
7.dwCallbackReason:指定回调函数的原因。
8.pContext:指向回调函数的指针。
9.cbSizeOFContext:回调函数的接口大小。
DirectSound 的帮助文档(中文版)(2006年4月28 日早)Copyright SONiX TEC H N OL O G Y C O., LTD.weihua_zhangWhat's New in DirectSoundDirectSound API 9.0增强了许多功能。
下面是改进的方面:·当操作系统支持时,缓冲区的最大频率从100khz增加到200KHZ,(DirectShow不支持高频率)·频率和音效控制(DSBCAPS_CTRLFREQUENCY and DSBCAPS_CRTLFX)已经与缓冲区绑定,通过绑定标志可以对缓冲区做多普勒音效变换。
·音频文件是通过WA VEFORMATEXTENSIBLE结构体来描述的。
·标准音效DMOs在模式WA VE_FORMAT_IEEE_FLOAT下能被处理。
·标准音效支持parameter curves 。
DirectSound介绍这节提供了帮助你快速浏览的DirectSound,并能开始学习API。
DirectSound 的功能。
DirectSound 和 DirectMusicDirectSound 的功能DirectSound 播放声音是通过较低的的功能实现,提供给应用程序一个较高的控制级,来访问硬件资源。
使用DirectSound 应用程序接口可以实现:从WA VE文件中播放声音。
同时播放多个声音赋予较高的权限去控制硬件缓冲区在3D环境中定位声音添加音效诸如回声合唱,可以动态改变音效从麦克风或其他输入设备捕获声音DirectSound 和 DirectMusicDirectSound和 DirectMusic时DirectX的两个分离部分,但是功能有部分重叠,都是播放wave声音,DirectMusic 最终实现合成所有声音并已WA VE格式存放在DirectSound 缓冲区,使其可以演奏。