'da arka plan modunda kesintili bir ses girişi kuyruğunu yeniden başlatamıyorum Kayıt için bir AudioQueue kullanarak bir iOS Uygulaması yazıyorum. Doğrusal PCM almak için yapılandırılmış bir giriş kuyruğu oluşturuyorum, bu sıra belirtildi ve her şey beklendiği gibi çalışıyor.iOS
Kesintileri yönetmek için, bir kesintinin başlangıcını ve sonunu yakalamak için AVAudioSession delegesi yöntemlerini uyguladı. yöntem endInterruption aşağıdaki gibi görünür: o ön planda iken uygulama kesilirse
- (void)endInterruptionWithFlags:(NSUInteger)flags;
{
if (flags == AVAudioSessionInterruptionFlags_ShouldResume && audioQueue != 0) {
NSLog(@"Current audio session - category: '%@' mode: '%@'",
[[AVAudioSession sharedInstance] category],
[[AVAudioSession sharedInstance] mode]);
NSError *error = nil;
OSStatus errorStatus;
if ((errorStatus = AudioSessionSetActive(true)) != noErr) {
error = [self errorForAudioSessionServiceWithOSStatus:errorStatus];
NSLog(@"Could not reactivate the audio session: %@",
[error localizedDescription]);
} else {
if ((errorStatus = AudioQueueStart(audioQueue, NULL)) != noErr) {
error = [self errorForAudioQueueServiceWithOSStatus:errorStatus];
NSLog(@"Could not restart the audio queue: %@",
[error localizedDescription]);
}
}
}
// ...
}
, her şey doğru çalışır. Kesinti arka planda olursa sorun görünür. ! Hatası kedi ses oturumu sonucu etkinleştirilmesi:
belirtilen ses oturumu kategorisi teşebbüs ses operasyon için kullanılamaz. Örneğin, kAudioSessionCategory_AudioProcessing olarak ayarlanan ses oturumu kategorisiyle ses çalmaya veya kaydetmeye çalıştınız. kategori AVAudioSessionCategoryPlayAndRecord ayarlanmış olduğunu noktada -12985
ve mod AVAudioSessionModeDefault geçerli:
hata kodu oturum sonuçlarını aktive etmeden kuyruğu başlatılıyor.
Bu hata iletisiyle ilgili herhangi bir belge bulamadım veya arka planda bir giriş ses kuyruğu yeniden başlatılabilir.
Ben öyle düşündüm. :-( –