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から新しいサウンドパッケージを取得すると、ライブストリームであるため、古いサウンドパッケージが終了するため、いくつかのバッファーは必要ないという提案がありました(これは私の録音に基づいています) 、とにかくいくつかを受信しないため、プレゼンテーションのタイムスタンプを検索せずにバイトを追加しただけです)
乾杯