Tonverarbeitung: Soll ich Directsound oder direkt Win32-APIs?
-
22-08-2019 - |
Frage
Ich mache eine Anwendung, wo ich will:
- Nehmen Sie vom Mikrofon und einige Echtzeit-Verarbeitung auf dem Eingang
- Wiedergabe einer MP3-Datei (ein regulärer Song), aber die Manipulation der Ausgabe in Echtzeit
- Immer wieder werde ich brauche zusätzliche Sounds über dieses Lied zu spielen, aber ich denke, ich kann das tun, indem Sie einfach die Puffer hinzuzufügen.
Kurz gesagt, ich brauche für Aufnahme und Wiedergabe Ringpuffer haben, und ich brauche „Fütterung“ den Ausgabepuffer mit den neuen Daten alle 20 ms oder so sein, die gerade dabei ist, gespielt werden.
Ich habe bei Directsound gesucht, und es scheint nicht viel zu helfen. Das Lesen und Schreiben an die Ausgangspuffer scheinen sehr ähnlich zu Win32, der einzige Ort, wo es scheint, es helfen würde, ist die „zusätzliche Sounds“ über dem Haupt Song zu spielen.
Sollte ich Directsound, oder sollte ich gehen Sie direkt zu roh Windows-APIs?
Ist Directsound geht etwas für mich zu tun?
Vielen Dank im Voraus!
Lösung
Die Direct API geben Sie eine bessere Echtzeit-Kontrolle. Sie sind auch der unterstützte Weg Sound in Windows zu verwenden. Ich hatte den Eindruck, dass die win32 api wurden unerwün- schte, aber ich konnte auf diese falsch sein.
Diese Frage ist in der Nähe zu Ihren
https://stackoverflow.com/questions/314522 / what-is-the-best-c-Sound-api-für-Fenster
auch
Ist DirectSound- die beste Audio-Abstraktionsschicht für Windows / a>
Andere Tipps
Weder? :)
Die Geschichte ist, dass Directsound der Ersatz für waveOut, aber Directsound verbunden Directinput als veraltet APIs in Vista und ist mit WASAPI . Directsound und waveOut sind oben auf dem User-Space WASAPI in Vista implementiert. Auf XP, waveOut und Directsound-Feed auf den gleichen Kernel-Ebene Mixer API.
alle diese Schnittstellen konsolidieren zu sehen, so etwas wie OpenAL, es ist ein gut unterstützt Audiostandard auf der gleichen Linie wie OpenGL.
Es klingt wie Sie gehen zu Latenz ziemlich empfindlich sein. Es könnte unter ASIO
aussehen zahlenIch fand Harmony Central - Audio Programming . Lesen Sie auch w:. DirectSound-
Windows Vista verfügt über eine komplett neu geschrieben Audio-Stack basierte auf dem Universal Audio Architecture. weil der architektonischen Veränderungen in der neu gestaltet Audiostapel, ein direkter Weg von Directsound zu den Audio-Treiber nicht vorhanden ist.
Aufgrund der Xbox 360 und Microsoft Windows-Integration, Microsoft ist aktiv drängen Entwickler zu migrieren neue Anwendungen gleichwertig Xbox Audio-APIs wie Xaudio und XACT.
OpenAL sieht vielversprechend aus.