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

StackOverflow https://stackoverflow.com/questions/158282

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Видишь ли, если СДЛ выглядит лучше.

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top