Frage

ist die beste Audio-Abstraktionsschicht für Windows Directsound? Schale meine app von einer sehr schlechten Sound Implementierung zu einem bestimmten Chipsatz, auf eine abstration Schicht.

App stammt Winform, .net 3.5. DirectX / Directsound ist die wahrscheinlichste Wahl, aber ein wenig besorgt über die Overhead. Alle anderen Optionen? Oder ist es albern sogar über etwas anderes zu denken?

War es hilfreich?

Lösung

DirectSound- ist nicht die gleiche Liebe von Microsoft bekommen heute, wie es in der Vergangenheit bekam. Soweit DirectX betrifft, so können Sie XAudio2 oder XACT stattdessen versuchen. Manche Leute lieben diejenigen, die anderen hassen sie. XAudio2 ist mehr Low-Level, während XACT ist eher auf hohem Niveau. Beide sind von Microsoft XNA, die wie Managed DirectX, sondern wird aktiv entwickelt.

Aber Sie sind nicht beschränkt auf die Verwendung, was DirectX kommt mit. Versuchen Sie FMod , wenn Sie etwas Großes wollen. Sie haben immer noch ihre Shareware / Hobbyist Lizenzmodell und ein Freeware-Lizenzmodell, falls Sie nicht wollen, einige große Geld zahlen.

Ihre Wahl hängt davon ab, was genau wollen Sie mit Ton zu tun.

Andere Tipps

Sehen Sie, wenn SDL besser aussieht.

Nun, können Sie versuchen, OpenAL statt. Was für OpenGL ist zu Direct3D ist OpenAL auf Directsound (3D). Die Schnittstelle ist ziemlich ähnlich wie OpenGL, wenn Sie das nicht mögen, werden Sie wahrscheinlich OpenAL nicht mögen, auch. Auch ich bin nicht sicher, ob die Windows-Version dieser lib ist eine eigene, native Implementierung oder nur Anrufe Directsound und somit könnte nur eine (dünne?) Sein Wrapper oben drauf.

DirectSound- ist ziemlich gut.

Wenn Sie mit niedriger Latenz oder eine gute Unterstützung für Sound Ein- und Ausgang über mehrere Soundkarten gleichzeitig auch einen Blick auf ASIO haben möchten:

http://de.wikipedia.org/wiki/Audio_Stream_Input/Output

Die waveOut ... API ist immer noch eine Option. Es ist schwierig, mit von verwaltetem Code zu arbeiten, aber Sie können mehrere Töne auf einmal diese Weise (in XP und Vista, zumindest).

spielen

Wenn Sie brauchen nur Töne gelegentlich zu spielen, System.Media.SoundPlayer ist sehr einfach zu bedienen. Sie können jedoch nicht mehr als einen Ton zu einer Zeit mit dieser Komponente spielen.

Directsound ist Ihre einzige andere wichtige Alternative. Es verfügt über einen integrierten Software-Synthesizer, wenn das etwas ist, was Sie brauchen.

EDIT: SDL sieht interessant aus. Danke, Sijin.

SharpDX sieht interessant aus. Ich plane, auf sich als Ersatz für Managed DirectX wegen der x86 Einschränkungen des letzteren versuchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top