Дамп звуковой волны на стандартный вывод с помощью Windows API

Я работал над довольно интересным проектом, я хочу захватывать звук из стерео микса на windows в PCM 44100 Гц 16 бит и упаковывать его через сеть с помощью netcat (используя cygwin).

Цель этого проекта — иметь возможность подключить аудиовыход Windows к аудио-серверу pulse, слушающему где-то в локальной сети.

До сих пор я был в состоянии выгрузить аудио в файл .wav, и, скачав этот файл и отправив его в netcat, успешно доставил его на сервер pulseaudio.

Это хорошо, но я хочу запустить его, используя прямой канал от моего клиента к netcat, поэтому звук должен быть отправлен на стандартный вывод.

Дело в том, что я не могу заставить Windows записывать аудио на стандартный вывод, пока я привязываюсь к функции mmioOpen:

//Original instruction, where filename is a LPWSTR with the file name
//outputFile=mmioOpen(filename,&MMinfo,MMIO_WRITE | MMIO_CREATE);
//New instruction, quite dirty
HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
outputFile=(HMMIO)out;

//Rest of the function

Не работает, я читал документацию и также пытался настроить структуру MMIOINFO так, чтобы она указывала на стандартный вывод HANDLE и все, но безрезультатно.

Я не могу найти никакой информации в документах о том, возможно ли использовать стандартный вывод в качестве вывода HANDLE через mmioOpen.

Я думал об использовании промежуточного файла в качестве буфера и продолжаю помещать его в стандартный вывод в отдельном потоке, но я не верю, что это хорошо для задержки, и что это правильный способ решения этой проблемы.

Кто-нибудь знает, есть ли другой способ захватить аудио и записать его прямо в стандартный вывод?

0

Решение

Дескриптор, возвращаемый mmioOpen, не является «выходным дескриптором». Это полезно только для перехода к другим функциям mmio.

Но почему вы используете mmioOpen? Это для чтения файла WAV. Для получения аудиоданных в реальном времени используйте функцию waveInOpen и связанные с ней waveIn ….

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector