質問

私は、iPhone上でオーディオを録音するオーディオキューサービスを使用しています。録音を開始するとき、私はしかし、待ち時間の問題を抱えています。ここでは、コードは(約):

OSStatus status = AudioQueueNewInput(
     &recordState.dataFormat, // 1
     AudioInputCallback, // 2
     &recordState,  // 3
     CFRunLoopGetCurrent(),  // 4
     kCFRunLoopCommonModes, // 5
     0,  // 6
     &recordState.queue);  // 7

// create buffers
for(int i = 0; i < NUM_BUFFERS; i++)
{
    if (status == 0)
        status = AudioQueueAllocateBuffer(recordState.queue, BUFFER_SIZE, &recordState.buffers[i]);
}

DebugLog(@"Starting recording\n");
OSStatus status = 0;
for(int i = 0; i < NUM_BUFFERS; i++)
{
    if (status == 0)
        status = AudioQueueEnqueueBuffer(recordState.queue, recordState.buffers[i], 0, NULL);
}
DebugLog(@"Queued buffers\n");
if (status == 0)
{
    // start audio queue
    status = AudioQueueStart(recordState.queue, NULL);
}
DebugLog(@"Started recording, status = %d\n", status);

ログ出力は次のようになります:

2009-06-30 19:18:59.631 app[24887:20b] Starting recording
2009-06-30 19:18:59.828 app[24887:20b] Queued buffers
2009-06-30 19:19:00.849 app[24887:20b] Started recording, status = 0

メッセージ「録画の開始」「キューバッファ」メッセージと2の間に1秒の遅延に注意。別に私は私のアプリを起動するとすぐに録画を開始してから、私はそれを取り除くことができますどのように任意のアイデア、?

ところで、1秒はシミュレータとデバイスでかなり一貫している、およびバッファの数や大きさによって影響されないようです。古き良きモノ16ビットのPCMを使用します。

役に立ちましたか?

解決

マイク・タイソンカバーこのに彼のブログをrel="nofollow href="http://michael.tyson.id.au"ます。

しかし、あなたはすぐにあなたがリモートオーディオユニット、またはAVAudioEngineを使用することをお勧めだろう録画を開始するために探している場合。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top