Воспроизведение необработанных звуковых данных в памяти с использованием функций MF C - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть проект на основе MF C, который декодирует некоторые данные и генерирует необработанные звуковые данные wav 16 бит 48000 Гц

Программа непрерывно генерирует звуковые данные wav в режиме реального времени

Есть ли какие-нибудь функции в MF C, которые позволят мне воспроизводить аудиоданные на звуковой карте? Некоторое время я гуглял, и, похоже, все согласны с тем, что MF C не имеет этой функции. Я также нашел этот учебник , который показывает, как воспроизводить файл wav с помощью функции PlaySound (), но похоже, что это только для файлов wav, и даже если он воспроизводит аудиоданные в памяти, эти данные должны быть подготовленным в виде полного wav-файла со всей информацией заголовка, в то время как мне нужно воспроизводить необработанные wav-данные, сгенерированные в режиме реального времени

Я также видел, как люди предлагают использовать Direct X, но я чувствую, что-то как это должно быть возможно при использовании библиотечных функций basi c windows без использования каких-либо дополнительных библиотек. Я также нашел этот учебник для создания и чтения wav-файлов в проекте на основе MF C, но не совсем понятно, как использовать его для воспроизведения необработанных wav-данных в памяти. В этом руководстве используется функция waveOutOpen () для воспроизведения c файла wav, и похоже, что это, вероятно, то, что мне нужно, но я не могу найти простой учебник, который показывает, как его использовать.

Как воспроизвести необработанный звук wav в памяти в проекте, основанном на диалоге MF C? Я ищу что-то, где я могу указать указатель на данные wav, количество выборок, биты и частоту выборки, и функция будет воспроизводить данные wav для меня. Буду признателен за базовый рабочий пример, такой как создание синусоиды и ее воспроизведение. Если DirectX - единственный способ сделать это, то это тоже хорошо.

...