Является ли DirectSound лучшим уровнем абстракции звука для Windows?

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

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


person pearcewg    schedule 01.10.2008    source источник
comment
Какие у вас требования к слою (мультиформатность, полифония и т.д.)?   -  person MusiGenesis    schedule 01.10.2008


Ответы (6)


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

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

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

person OregonGhost    schedule 01.10.2008
comment
Забавно, что вы упомянули, что DirectSound уже не пользуется той любовью, к которой он привык. Раньше я был разработчиком DirectX/Direct3D/DirectPlay/DirectSound (несколько лет назад) и сам заметил, что он застопорился, что и побудило меня задать вопрос. - person pearcewg; 01.10.2008

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

person Sijin    schedule 01.10.2008

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

person Mecki    schedule 01.10.2008
comment
Существуют ли собственные библиотеки .NET для OpenAL? Когда-то мне очень нравилось программировать в OpenGL. - person pearcewg; 03.10.2008

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

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

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

person Nils Pipenbrinck    schedule 01.10.2008

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

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

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

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

person MusiGenesis    schedule 01.10.2008

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

person Ian Mercer    schedule 22.09.2011