0

iPhoneでリニアPCMデータをライブで再生する必要があります。

RTSP 経由でLIVEデータストリームを取得します。現在、iPhone から読み込んでファイルに保存し、pcm をサポートするデスクトップ オーディオ プレーヤーで再生できます。したがって、トランスポートは問題ないと思います。

今私は行き詰まった、私は完全に行き詰まった! データを含む NSData オブジェクトをどうするかわかりません。

私は少し調査を行い、最終的にAudioUnitsになりましたが、NSdataをオーディオバッファーに割り当てることができません。それぞれ方法がわかりません。

私のインスタンスでは、コールバックを割り当てました:

AURenderCallbackStruct input;
input.inputProc = makeSound;
input.inputProcRefCon = self;

関数「makeSound」を持つ:

   OSStatus makeSound(
                void *inRefCon, 
                AudioUnitRenderActionFlags  *ioActionFlags, 
                const AudioTimeStamp        *inTimeStamp, 
                UInt32                      inBusNumber, 
                UInt32                      inNumberFrames, 
                AudioBufferList             *ioData)

      {

            //so what to do here?
            //ioData->mBuffers[0].mdata = [mySound bytes]; does not work, nor does
            //ioData->mBuffers = [mySound byes];

            return noErr;
       }

私のアプローチは一般的に間違っていますか?

何を知る/学ぶ/実装する必要がありますか? 私は完全なオーディオ初心者なので、rtspから新しいサウンドパッケージを取得すると、ライブストリームであるため、古いサウンドパッケージが終了するため、いくつかのバッファーは必要ないという提案がありました(これは私の録音に基づいています) 、とにかくいくつかを受信しないため、プレゼンテーションのタイムスタンプを検索せずにバイトを追加しただけです)

乾杯

4

1 に答える 1

1

これがまさにあなたが探しているものであるかどうかはわかりませんが、MattGallagherのAudioStreamerコードのいくつかがあなたに役立つかもしれません。特に、彼がオーディオバッファリングをどのように処理するかを確認してください。 http://cocoawithlove.com/2010/03/streaming-mp3aac-audio-again.html

于 2011-05-04T18:59:40.900 に答える