Обработка звука:Должен ли я использовать DirectSound или непосредственно API-интерфейсы Win32?

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

Вопрос

Я делаю приложение, в котором буду:

  • Запишите с микрофона и обработайте входной сигнал в реальном времени.
  • Воспроизведение файла MP3 (обычной песни), но управление выводом в реальном времени.
  • Время от времени мне нужно будет воспроизвести дополнительные звуки поверх этой песни, но я думаю, что смогу сделать это, просто добавив буферы.

Короче говоря, мне нужны кольцевые буферы как для записи, так и для воспроизведения, и мне нужно «подавать» выходной буфер каждые 20 мс или около того новыми данными, которые вот-вот будут воспроизведены.

Я смотрел DirectSound, и он, похоже, не очень помог.Чтение и запись в выходные буферы очень похожи на Win32, единственное место, где это может помочь, — это воспроизведение «дополнительных звуков» поверх основной песни.

Стоит ли мне использовать DirectSound или сразу перейти к необработанным API-интерфейсам Windows?
Сможет ли DirectSound мне что-нибудь сделать?

Заранее спасибо!

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

Решение

API Directsound обеспечивает лучший контроль в реальном времени.Они также являются поддерживаемым способом использования звука в Windows.У меня сложилось впечатление, что API Win32 устарели, но я могу ошибаться.

Этот вопрос близок вам

https://stackoverflow.com/questions/314522/what-is-the-best-c-sound-api-for-windows

также

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

И последнее, но не менее важное: вот что говорит Microsoft http://msdn.microsoft.com/en-us/library/dd370784(VS.85).aspx

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

Ни один?:)

История такова, что DirectSound является заменой waveOut, но DirectSound присоединился к DirectInput как устаревший API в Vista и заменен на ВАСАПИ.DirectSound и waveOut реализованы поверх WASAPI пользовательского пространства в Vista.В XP waveOut и DirectSound используют один и тот же API-интерфейс Mixer уровня ядра.

Чтобы объединить все эти интерфейсы, взгляните на что-то вроде OpenAL, это хорошо поддерживаемый аудиостандарт, аналогичный OpenGL.

Похоже, вы будете весьма чувствительны к задержке.Возможно, стоит посмотреть АСИО

я нашел Harmony Central — Аудиопрограммирование.Также читайте ш: DirectSound.

Windows Vista оснащен полностью переписным аудиотекалом на основе универсальной аудио-архитектуры.Из -за архитектурных изменений в перепроектированном аудио -стеке, прямой путь от DirectSound к водителям звука не существует.

Из -за интеграции Xbox 360 и Microsoft Windows Microsoft активно подталкивает разработчиков к мигрированию новых приложений в эквивалентные аудио API -интерфейсы Xbox, такие как Xaudio и Xact.

ОпенАЛ выглядит многообещающе.

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