Обработка звука:Должен ли я использовать DirectSound или непосредственно API-интерфейсы Win32?
-
22-08-2019 - |
Вопрос
Я делаю приложение, в котором буду:
- Запишите с микрофона и обработайте входной сигнал в реальном времени.
- Воспроизведение файла 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.
ОпенАЛ выглядит многообещающе.