質問

PortAudioライブラリを使用してオーディオデータを再生したいと考えています。この音声データは UDP パケットから取得されます。

ストリームを開くための Pa_OpenDefaultStream() (および非常に似た Pa_OpenStream()) 関数があることがわかりました。

PaStream *stream;
PaError err;
/* Open an audio I/O stream. */
err = Pa_OpenDefaultStream( &stream,
                            0,          /* no input channels */
                            2,          /* stereo output */
                            paFloat32,  /* 32 bit floating point output */
                            SAMPLE_RATE,
                            256,        /* frames per buffer, i.e. the number
                                               of sample frames that PortAudio will
                                               request from the callback. Many apps
                                               may want to use
                                               paFramesPerBufferUnspecified, which
                                               tells PortAudio to pick the best,
                                               possibly changing, buffer size.*/
                            patestCallback, /* this is your callback function */
                            &data ); /*This is a pointer that will be passed to
                                               your callback*/

パケットを再生するにはこれを使用する必要があると思いますが、使い方がわかりません。

  • 最初のパラメータは何ですか?
  • なぜコールバック関数を定義する必要があるのですか?

PortAudio ドキュメントへのリンクは次のとおりです。 http://www.portaudio.com/trac/

助けていただければ幸いです:)

ありがとう。

役に立ちましたか?

解決

最初のパラメータは、タイプPaStreamの入力/出力ストリームへのポインタです。このストリームに書き込まれてから/オーディオデータが読み込まれます。

あなたはそれがあなたのPCから/オーディオを読み書きする必要があるときPortAudioライブラリが呼び出すことをコールバック関数を記述する必要があります。あなたが(例えばDSP)を行いたい任意の他のオーディオ処理もここで行われます。シンプルなコールバック関数は、I / Oをストリーミングするため、入力を出力にコピーするだけです。あなたの代わりにブロッキングAPIを使用して、コールバックを使用して問題がある場合は、理解しやすいかもしれません。

コンパイルおよび詳細については、例を実行します(例えばpatest_read_record.c)、theresのそこの情報がたくさん。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top