0

私は非常に面白いプロジェクトに取り組んできました。PCM 44100 Hz 16 ビットの Windows でステレオ ミックスからオーディオをキャプチャし、netcat を使用して (cygwin を使用して) ネット経由でパックしたいと考えています。

このプロジェクトの目標は、Windows の出力オーディオを、LAN 上のどこかでリッスンしている pulseaudio サーバーに接続できるようにすることです。

これまでのところ、音声を .wav ファイルにダンプできました。そのファイルを cat して netcat にパイプすると、pulseaudio サーバーに正常に配信されます。

それは良いのですが、クライアントから netcat への直接パイプを使用して実行したいので、オーディオを stdout に送信する必要があります。

問題は、Windows に音声を stdout に書き込むようにさせることができないということです。これまでのところ、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

動作しません。ドキュメントを読んでいて、標準出力の HANDLE などを指すように MMIOINFO 構造を設定しようとしましたが、役に立ちませんでした。

mmioOpen を介して stdout を出力ハンドルとして使用できるかどうかについて、ドキュメントに情報が見つかりません。

中間ファイルをバッファとして使用し、それを別のスレッドで stdout に入れ続けることを考えましたが、それが待ち時間に適しているとは思いませんし、この問題を解決する正しい方法だとも思いません。

オーディオをキャプチャして標準出力に直接書き込む別の方法があるかどうかは誰にもわかりませんか?

4

1 に答える 1