DirectSound开发手册
directsound 用法

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音频媒体的程序设计

微软所提供开发工具包括一系列专为游戏和交互DircetX DirectSound 以及Direct3Dsound音频媒体的程序设计人员开发的强有力的工具。
DirectX充分利用了声音加速硬件以尽可能的提高其运行速度,减少CPU 的占用时间。
但是,音频信号仍然对整个系统的运行产生着重大影响。
本文所描述的技术将帮助用户使用DirectSound 以及Direct3DSound以减少音频重放对系统运行的影响。
前言微软所提供的开发工具中DirectX 波形声音重放设备是为支持在Windows 95 和Windows NT 中开发游戏和交互媒体应用程序而设计的。
DirectSound 和Direct3DSound允许你在同一个三维空间中同时运行多个声音文件和移动声音源。
只要有可能DirectX ,将充分利用声音加速设备来改善运行状况和减少CPU的使用。
但这并不是说你可在三维程序空间运行、编译充斥着大量声音代码的程序,并且随心所欲地将其移来移去。
如果你并没有注意如何使用计算机的声音资源你将很快发现,你的计算机的CPU周期绝大部分被你自己添加的一个户外历险游戏的44.1khz,16位立体声的优美声音所占去。
技巧和技术首先,我们来谈谈一些有关的定义。
你所熟悉的DirectSound包括以下一些术语:从缓冲区:是指用来执行波形数据的应用程序缓冲区。
每个执行的波形文件都有一个从缓冲区,每个这样的缓冲区都有自己特定的格式。
主缓冲区:是DirectSound的输出缓冲区。
一般说来,应用程序并非将波形数据直接写入主缓冲区。
相反,DirectSound 首先在从缓冲区中将波形数据加以合成,然后输入主缓冲区中。
注意:仅有一个主缓冲区,并且其格式决定了其输出格式。
静态缓冲区:包含了内存中的一个完整的声音。
因为,通过一次简单操作,你能在缓冲区中写入一个完整的声音。
所以,他们对于用户十分方便。
静态缓冲区通过声卡的合成加速执行。
流缓冲区:仅仅为声音的一部分,利用它,我们并不需要大量的内存就能运行较长的声音文件。
windows声音应用程序开发指南_张新宇_第1章 DirectX Audio之DirectSound

第1章
1.1.3 DirectX Audio新特征 前面曾提到,在新的DirectX Audio体系结构中加入 了不少新的特征,增加了控制的灵活性和功能的完善 性。下面对这些新特征予以总结。 (1) WAV文件和基于消息的声音集成在一个播放机 制中。WAV文件和资源现在可以通过 DirectMusic 加 WAV 载器加载,并通过DirectMusic演奏器播放。应用程序 不 再 需 要 分 解 WAV 文 件 , 并 将 其 复 制 或 流 入 DirectSound 缓存。
第1章
2.DirectX的发展 DirectX的发展历程如图1-1所示。
DirectX的发展历程 …… DirectX 8.0 DirectX 7.0 DirectX 6.0 DirectX 5.0 DirectX 3.0 DirectX 2.0 DirectX 1.0 Game SDK
图1-1 DirectX 的发展历程
第1章
(3) 让游戏也成为真正的Windows应用程序,即支持 多任务。你可以从一个游戏切换到同时运行的另一个 应用程序,然后还可以返回该游戏。 (4) 要有能超过或者达到DOS环境下所能达到的性能。 在使用Game SDK的情况下,游戏开发者不必关心游戏 要运行在哪个制造商的硬件上,因为Microsoft把这些 特性都封装在了硬件驱动程序和一系列API中,当然很 多是由硬件制造商完成的,达到了开发时的硬件独立 性。
第1章
6) DirectX 7.0 DirectX 7.0在图形功能方面创建的图形多边形数目 比以前版本都要多,这使得计算机生成的数字世界的 人物和物体的表面更加平滑。DirectX 7.0提供高级3D 加速支持,使得多边形的变化更快,它所产生的动画 效果非常逼真irectX 8.0是Microsoft公司于2000年11月9日正式推 出的一款DirectX的最新版本。它具有多项令人兴奋的 功能特性。下面将对它的新增特性进行全面详细的介 绍。 DirectX 8.0是Windows操作系统下的最新的多媒体 系统链接库。通过DirectX 8.0,其它软件能够尽情发挥 系统的效能,并且带给我们最棒的多媒体体验和震撼 效果。
DirectSound---简易Wav播放器

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教程(新整理)

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程序中只要执行把滤镜连接在一起就可以了。
C# 中利用 DirectSound 录音

net设备对象每个应用程序只有一个设备对象用来管理设备创建辅助缓冲区microsoftdirectxdirectsoundcapture主缓冲区一个应用程序只有一个主缓冲区操控声音捕捉缓冲区和产生混音效果的区域microsoftdirectxdirectsoundcapturebuffer辅助缓冲区每一个声音对应一个辅助缓冲区可以有多个辅助缓冲区用来存储要播放的声音文件可建立多个辅助缓冲区来放多个要播放的声音文microsoftdirectxdirectsoundsecondarybuffer事件通知对象一个缓冲区可以有多个通知对象用于在缓冲区的特定点触发通知事件来通知程序执行操作microsoftdirectxdirectsoundnotify其它辅助对象对象作用
对以上内容有所了解后,我们接着来了解下利用
DirectSound 录制声音的基本步骤。
1 DirectSound 是什么? DirectSound 是微软提供的 DirectX API 的一部分。它使你能以极低的时延播放声 音,使应用程序可以高度利用硬件资源。 2 DirectSound 能做什么? 2.1 按照 WAV 格式播放声音。有多个通知对象Fra bibliotek序执行操作
4 其它辅助对象
对象
作用
.Net 中的类或结构体
定义 WAV 音频
directsoundcreatebufferfromfile

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:回调函数的接口大小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中华视频网: Ffmpeg 工程组: 佰锐科技:
DirectSound 开发指南
作者:智慧的鱼
中华视频网 整理
一、DirectSound 简介(Introduction to DirectSound)
六、Wave 文件格式以及底层操作函数 API 使用技巧 .................................................. 36
6.1RIFF 文件结构 .........................................................................................................................36 6.2WAVE 文件结构 .......................................................................................................................38 6.3avi 文件结构 .............................................................................................................................39 6.4 多媒体文件输入输出 ..............................................................................................................39 6.5 波形音频的编程(wave 系列函数) .....................................................................................40 6.6AVI 编程 ...................................................................................................................................40
五、DirectSound 接口函数和指针简介 ........................................................................... 35
5.1DSound 常用的接口指针 .........................................................................................................35 5.2Dsound 函数 .............................................................................................................................35 5.3Dsound 常用的结构 .................................................................................................................36
DirectSound 开发指南
作者:智慧的鱼
中华视频网 整理
绪言
DirectSound 是微软多媒体技术 DirectX 的组成部分,封装了大量音频处理 API 函数, 它可以提供快速的混音、 硬件加速功能, 并且可以直接访问相关设备, 当然,最主要的是它提供的功能与现有的设备驱动程序保持兼容性。 重放, 也可以通过控制硬件和相应的 DirectSound 允许进行波型声音的捕获、 驱动来获得更多的服务。 DirectSound 的优势当然和 DirectX 的其它组件一样——速度,它允许你最大 效率的使用硬件,并拥有良好的兼容性。 中华视频网 ( ) 一直致力于语音视频技术的研究和推广, 由于目前有关 DirectX 系列的编程资料比较少,最主要的参考资料还是 DirectX SDK 文档,特别是对于初学者来说,相对来说比较难以入门。早期也收编过多 篇“智慧的鱼”的文章,鉴于本册《DirectSound 开发指南》是一篇比较实用的 关于 DirectSound 编程手册,特收集整理成册,以供后来者学习。 非常感谢“智慧的鱼”前期的辛勤劳动和无私的分享精神!
#include <windows.h> #include <mmsystem.h> #include <mmreg.ht;
如果你还想使用 Dsound 的 API 的话, 那么你就要在你的 vc 开发环境中添加 Dsound..lib 库, 如果你的程序还提示有很多的外部链接找不到, 那么我建议你可以将下面的库都添加到你的 工程中 comctl32.lib dxerr9.lib winmm.lib dsound.lib dxguid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,这些是我从 Dsound 提供的例子中得到的,肯定够你用的,ok,开发环境配置 好了。 下面我们简单的来学习一下如果通过 Directsound 的 API 播放声音,既然是 breif overview, 那么详细的内容你可以参考下面的一节内容,这里只是简单的介绍一下播放声音的步骤。 第一步,创建一个设备对象。 在你的代码中你可以通过调用 DirectSoundCreat8 函数来创建一个支持 IDirectSound8 接口 的对象,这个对象通常代表缺省的播放设备。当然你可以枚举可用的设备,然后将设备的 GUID 传递给 DirectSoundCreat8 函数。 注意,Directsound 虽然基于 COM,但是你并不需要初始化 com 库,这些 Directsound 都帮 你做好了,当然,如果你使用 DMOs 特技,你就要自己初始化 com 库了,切记。 第二步,创建一个辅助 Buffer,也叫后备缓冲区
3.1Dsound 设备对象(DirectSound Devices) ...................................................................................6 3.2Dsound 的 buffer 对象(DirectSound Buffers) ............................................................................9 3.3Using WAV Data .......................................................................................................................15 3.43-D Sound .................................................................................................................................16 3.5 增加声音特技 Using Effects ...................................................................................................21 3.6 录制 Capturing Waveforms......................................................................................................22
DirectSound 开发指南
作者:智慧的鱼 编辑:中华视频网
中华视频网: 佰锐科技:
DirectSound 开发指南
作者:智慧的鱼
中华视频网 整理
目 录
绪言 ....................................................................................................................................... 3 一、DirectSound 简介( 简介(Introduction to DirectSound) ................................................ 4 二、DirectSound 初体验( 初体验(Getting Started with DirectSound) ................................... 4 三、DirectSound 实用开发技巧 Using DirectSound........................................................ 5
四、DirectSound 开发高级技巧 ....................................................................................... 28
4.1Dsound 驱动模型(DirectSound Driver Models) .................................................................28 4.2 设置硬件的扩展属性(System Property Sets) ....................................................................28 4.3Property Sets for DirectSound Buffers......................................................................................28 4.4 如何优化 Directsound(Optimizing DirectSound Performance) .........................................30 4.5 向主缓冲区写数据(Writing to the Primary Buffer) ...........................................................32