2010-11-22 15 views
0

私はPortAudioライブラリを使用してオーディオデータを再生したいと考えています。この音声データはUDPパケットから得られます。UPD paquetsからストリームを開く方法は?

私は、ストリームをオープンする機能(かなり類似しているとPa_OpenStream())Pa_OpenDefaultStream()がありました:

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*/ 

私はpaquetsを再生するためにそれを使用する必要がありますが、私はないと思いますそれを使用する方法を知っている:

  • 最初のパラメータは何ですか?
  • なぜコールバック関数を定義する必要がありますか?任意の助けをいただければ幸いですhttp://www.portaudio.com/trac/

    :)

    ありがとう:ここ

はPortAudioのドキュメントへのリンクです。

答えて

1

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

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

例をコンパイルして実行してください(例:patest_read_record.c)。そこには多くの情報があります。

+0

「シンプルなコールバック関数」をどのように記述しますか?私はそれをコード化したいと思っています。ありがとう –

関連する問題