DirectSound - лучший уровень абстракции аудио для Windows? - PullRequest
3 голосов
/ 01 октября 2008

Является ли DirectSound лучшим уровнем звуковой абстракции для Windows? Переключение моего приложения с очень плохой звуковой реализации, встроенной на определенный чипсет, на уровень абстракции.

Приложение является родным Winform, .net 3.5. DirectX / DirectSound является вероятным выбором, но немного обеспокоен накладными расходами. Есть еще варианты? Или глупо даже ДУМАТЬ о чем-то еще?

Ответы [ 6 ]

6 голосов
/ 01 октября 2008

DirectSound сегодня не получает такой же любви от Microsoft, как в прошлом. Что касается DirectX, вы можете попробовать XAudio2 или XACT. Некоторые люди любят их, другие ненавидят их. XAudio2 более низкоуровневый, а XACT довольно высокоуровневый. Оба доступны из Microsoft XNA, которая похожа на Managed DirectX, но активно развивается.

Но вы не ограничены использованием того, что поставляется с DirectX. Попробуйте FMod , если хотите чего-то великого. У них по-прежнему есть модель лицензии Shareware / Hobbyist и модель лицензии Freeware, если вы не хотите платить большие деньги.

Ваш выбор зависит от того, что именно вы хотите сделать со звуком.

2 голосов
/ 01 октября 2008

Ну, вместо этого вы можете попробовать OpenAL . OpenGL для Direct3D - это OpenAL для DirectSound (3D). Интерфейс очень похож на OpenGL, если вам это не нравится, возможно, вам также не понравится OpenAL. Также я не уверен, является ли версия этой библиотеки для Windows собственной, нативной реализацией или просто вызывает DirectSound и, таким образом, может быть (тонкой?) Оболочкой поверх нее.

2 голосов
/ 01 октября 2008

Посмотрите, выглядит ли SDL лучше.

1 голос
/ 01 октября 2008

API-интерфейс waveOut ... по-прежнему доступен. Работать с управляемым кодом сложно, но вы можете воспроизводить одновременно несколько звуков (по крайней мере, в XP и Vista).

Если вам просто нужно время от времени воспроизводить звуки, System.Media.SoundPlayer очень прост в использовании. Однако вы не можете воспроизводить более одного звука одновременно с этим компонентом.

DirectSound - ваша единственная альтернатива. Он имеет встроенный программный синтезатор, если вам это нужно.

РЕДАКТИРОВАТЬ: SDL выглядит интересно. Спасибо, Сиджин.

1 голос
/ 01 октября 2008

DirectSound довольно хорош.

Если вам нужна низкая задержка или хорошая поддержка для ввода и вывода звука через несколько звуковых карт одновременно, вы также можете взглянуть на ASIO:

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

0 голосов
/ 22 сентября 2011

SharpDX выглядит интересно. Я планирую попробовать его в качестве замены для Managed DirectX из-за ограничений x86 последнего.

...