現在、さまざまな理由でいくつかのアプリでNovocaineを使用しています。すばらしいフレームワークを提供してくれた Alex に感謝します。アークを作ってくれた Nick D. にも感謝します!
次のような基本的なプレイスルーの例を使用してサンプルを取得できます。
[self.audioManager setInputBlock:^(float *data, UInt32 numFrames, UInt32 numChannels) {
NSMutableData *theData = [NSMutableData dataWithBytes:data
length:(numFrames* numChannels*sizeof(float))];
}];
次に、 GCDAsyncSocketを使用してソケット ストリーム経由でデータを送信しています
データを受信したら、リングバッファに入れています
float *floatData = (float*)[theData bytes];
_ringBufferOut->AddNewInterleavedFloatData(floatData, numFrames, numChannels);
そして、次のように再生します。
[audioManager setOutputBlock:^(float *outData, UInt32 numFrames, UInt32 numChannels) {
_ringBufferOut->FetchInterleavedData(outData, numFrames, numChannels);
}];
私の最善の試みは、(バッファのサイズに応じて)数秒のサウンドを受信することであり、グリッチやサウンドなしではありません...
私はバッファをまったく使用したことがなく、これを達成する方法を設定しようとしてすでに数日を費やしました。
私の質問は次のとおりです: Novocaine とその ringBuffer だけを使用して、iPhone デバイス間でオーディオをストリーミングすることは可能ですか? Speak Hereの例のように AudioQueue に移動する必要がありますか? もしかしたら、両方を組み合わせる?私の問題はバッファを使用していることを理解しているので、バッファリングに関するヘルプは大歓迎です。