Получение аудиосигнала динамика и его потоковая передача - PullRequest
7 голосов
/ 09 июля 2009

Я пытаюсь создать то, что я считаю базовым приложением. Ну, два приложения, одно для Windows и одно для OS X. Я хотел бы захватить воспроизводимый аудиосигнал (то есть, если пользователь воспроизводит музыку через свои динамики) Затем возьмите этот сигнал и транслируйте его, чтобы другой компьютер мог «слушать». Другим компьютером будет Windows или OS X.

  1. Есть идеи, как получить аудиосигнал?
  2. Какой самый эффективный способ потоковой передачи звука без стороннего плагина? Если бы там было решение с открытым исходным кодом, мне было бы интересно.

Спасибо!

Chris

1 Ответ

3 голосов
/ 10 июля 2009

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

В Windows Vista и более поздних версиях вы можете захватывать выходные данные звукового движка, используя API-интерфейсы WASAPI (встроенные в Windows, поэтому они бесплатны) и инициализируя аудио-клиент с флагом AUDCLNT_STREAMFLAGS_LOOPBACK. Это даст вам поток захвата, который подключен к выходу аудио движка.

Затем вы можете упаковать этот звук и отправить его на другой компьютер и выполнить рендеринг с любым API-интерфейсом для рендеринга звука.

Я не знаю, как сделать эквивалент на OSX, хотя: (.

...