Ses kaydı, gerektiği gibi çalışır: Kaydı kaydedebilir ve oynatabilirim. Sadece garip olan şey, Geri Çağırma fonksiyonunun bazen tamamen doldurulmayan tamponlarla çağrılmasıdır. benim StreamCallback işlevinde inNumPackets
değişkenin değerini giriş yapmış ve bir dizi bu gibi görünebilir:Ses kaydedici neden iOS ses kaydı geri aramamda yok?
2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048 2048, , 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048 2048, 2048, 2048,
şu anda tampon işleme kod ben eserler her zaman a almak demektir sabit bir boyutu, güvenirtampon doldurulmadı.
Her zaman tam arabellek almak için bir şeyler yapabilir miyim? - ya da beklenen davranış mı? Benim kodundan
Birkaç ekstreler:
DataFormat.mFormatID := kAudioFormatLinearPCM;
DataFormat.mSampleRate := 44100;
DataFormat.mChannelsPerFrame := 1;
DataFormat.mBitsPerChannel := 16;
DataFormat.mBytesPerPacket := 2;
DataFormat.mBytesPerFrame := 2;
DataFormat.mFramesPerPacket := 1;
DataFormat.mFormatFlags := kLinearPCMFormatFlagIsSignedInteger OR kLinearPCMFormatFlagIsPacked;
lStatus := AudioQueueNewInput(@DataFormat,@StreamCallback,nil,nil,kCFRunLoopCommonModes,0,fAqDataQueue);
...
//allocate 3 buffers with a buffer size of 2048 packets with 2 bytes per packet
AudioQueueAllocateBuffer(fAqDataQueue,2*2048,fAqDataBuffers[li]);