2012-09-24 13 views
5

ゲームにVOIPを追加する(クロスプラットフォームなので、Appleのゲームキットを使用することはできません)。録音中のオーディオユニットリモートIO再生

3または4日間、私はオーディオユニットとリモートIOの周りを包み込むようにしようとしています... 私は数十の例を見落としましたが、そのたびに単純なアルゴリズムをPCMを入力してスピーカーで再生します。 Appleの文書によると、VOIPを行うために、kAudioSessionCategory_PlayAndRecordを使用する必要があります。

UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord; 

     status = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, 
             sizeof(audioCategory), 
             &audioCategory); 
     XThrowIfError(status, "couldn't set audio category"); 

1)しかし、aurioTouch// excatly PerformThruコールバックplayAndRecordは、常にマイクから来るものを再生する(またはそれ以上になることを()私には思える)、私は間違っていますか?

私は私が(未直接のコースが、データはそれから来る)ピアにデータを送信しようとするんだというコールバックからAURender

static OSStatus PerformThru(
          void      *inRefCon, 
          AudioUnitRenderActionFlags *ioActionFlags, 
          const AudioTimeStamp  *inTimeStamp, 
          UInt32      inBusNumber, 
          UInt32      inNumberFrames, 
          AudioBufferList    *ioData) 
{ 
OSStatus err = AudioUnitRender(THIS->rioUnit, ioActionFlags, inTimeStamp, 1, inNumberFrames, ioData); 
    if (err) 
     printf("PerformThru: error %d\n", (int)err); 
    return err 
} 

が、何もしない、最も単純なコールバックを持っています...

2単位、1レコーディング、1レッスンを除いて、入力とは異なる出力を再生する方法はわかりませんが、アップルが意図したものではないようです。

そしてもちろん、私はオーディオユニットは、まだ未ドキュメント化はかなりあり、それについての任意のドキュメントを見つけることができません...

誰もがそれを行うための最善の方法であるもののアイデアを持っているでしょうか?

答えて

8

私はVOIPまたはkAudioSessionCategory_PlayAndRecordを使用していません。しかし、マイクから拾った音声を録音/送信し、ネットワークパッケージからの受信データを再生したい場合:Hereは、マイクと再生の両方を含む良いサンプルです。また、Appleからこの文書を読んでいない場合は、thisを強くお勧めします。

要約:AudioUnitsインスタンスを作成する必要があります。その中に、マイク用と再生用の2つのコールバックを設定します。コールバックマイク機能は、マイクから取り出されたデータを提供します。選択したネットワークプロトコルを使用して、変換して他のデバイスに送信できます。再生コールバック機能は、再生する他のネットワークデバイスからの着信データを提供する場所です。

+1

検索中にこのサンプルを作成したことはありませんでした。 – TheSquad

+0

ポストにお礼ありがとうございます。私はこれを長い間探し続けてきました。あなたは私の問題を解決しました。たくさんのことをありがとうございました。 –

+1

レコーダーのオーディオバッファを保存するにはどうすればいいですか? –

0

thisの簡単な例を参照してください。リモートIOユニットの使い方について説明しています。この例を理解した後、PJSIP's audio driverをご覧ください。これらは、独自のソリューションの実装に役立ちます。運が良かった。

関連する問題