Traitement du son: Dois-je utiliser DirectSound ou directement API Win32?
-
22-08-2019 - |
Question
Je fais une demande où je vais:
- Enregistrer à partir du microphone et faire un traitement en temps réel sur l'entrée
- lire un fichier MP3 (une chanson régulière), mais la manipulation de la sortie en temps réel
- Chaque maintenant et puis je vais devoir jouer des sons supplémentaires sur cette chanson aussi, mais je suppose que je peux le faire en ajoutant simplement les tampons.
En bref, je dois avoir des tampons circulaires pour l'enregistrement et la lecture, et je dois être « alimentation » le tampon de sortie toutes les 20 ms environ avec les nouvelles données qui est sur le point d'être joué.
Je l'ai regardé DirectSound, et il ne semble pas aider beaucoup. La lecture et l'écriture aux tampons de sortie semblent très similaires à Win32, le seul endroit où il semble que ça l'aide est à jouer les « sons supplémentaires » sur la chanson principale.
Dois-je utiliser DirectSound, ou devrais-je aller directement aux API de Windows brutes
DirectSound va faire quelque chose pour moi?
Merci à l'avance!
La solution
Les API DirectSound de vous donner un meilleur contrôle en temps réel. Ils sont également pris en charge la façon d'utiliser son dans Windows. J'avais l'impression que les depracated ont été de win32 api de, mais je peux me tromper sur ce point.
Cette question est proche de la vôtre
https://stackoverflow.com/questions/314522 / what-is-the-best-c-son-api-pour-windows
aussi
DirectSound la meilleure couche d'abstraction audio pour Windows?
Autres conseils
Ni? :)
L'histoire est que DirectSound est le remplacement de waveOut, mais DirectSound a rejoint DirectInput comme API désapprouvées dans Vista et est remplacé par WASAPI . DirectSound et waveOut sont mises en œuvre sur le dessus du WASAPI espace utilisateur dans Vista. Sur XP, waveOut et DirectSound se nourrissent à la même API Mixer niveau du noyau.
Pour consolider toutes ces interfaces un coup d'oeil à quelque chose comme OpenAL, il est une norme audio bien pris en charge dans le même sens que OpenGL.
On dirait que vous allez être très sensibles à la latence. Il pourrait payer pour regarder ASIO
J'ai trouvé w:. DirectSound
Windows Vista dispose d'un complètement pile audio réécrite en fonction de la Universal Audio Architecture. Parce que des changements architecturaux dans le pile audio redessiné, un chemin direct de DirectSound aux pilotes audio n'existe pas.
En raison de la Xbox 360 et Microsoft l'intégration de Windows, Microsoft est poussant activement les développeurs à migrer de nouvelles applications à Xbox équivalent API audio tels que XAudio et XACT.
OpenAL semble prometteur.