पर पृष्ठभूमि मोड में एक बाधित ऑडियो इनपुट कतार को पुनरारंभ नहीं कर सकता है मैं रिकॉर्डिंग के लिए ऑडियोक्यूयू का उपयोग करके एक आईओएस ऐप लिख रहा हूं। मैं रैखिक पीसीएम प्राप्त करने के लिए कॉन्फ़िगर एक इनपुट कतार बना देता हूं, यह कतार बताता है और सब कुछ अपेक्षित काम करता है।आईओएस
बाधाओं का प्रबंधन करने के लिए, मैंने शुरुआत और अंतराल के अंत को पकड़ने के लिए AVAudioSession के प्रतिनिधि तरीकों को लागू किया। विधि endInterruption निम्नलिखित की तरह दिखता है:
- (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]);
}
}
}
// ...
}
तो एप्लिकेशन बाधित हो जाता है, जबकि यह अग्रभूमि में है, सब कुछ सही काम करता है। समस्या प्रकट होती है, अगर पृष्ठभूमि में बाधा होती है। ! त्रुटि बिल्ली में ऑडियो सत्र परिणाम सक्रिय कर रहा है:
निर्दिष्ट ऑडियो सत्र श्रेणी का प्रयास किया ऑडियो ऑपरेशन के लिए इस्तेमाल नहीं किया जा सकता है। उदाहरण के लिए, आपने ऑडियो सत्र श्रेणी के साथ ऑडियो को चलाने या रिकॉर्ड करने का प्रयास किया है जो kAudioSessionCategory_AudioProcessing पर सेट है।
त्रुटि कोड में सत्र परिणाम सक्रिय किए बिना कतार शुरू: -12985
उस बिंदु श्रेणी AVAudioSessionCategoryPlayAndRecord के लिए निर्धारित है पर और मोड AVAudioSessionModeDefault है।
मुझे इस त्रुटि संदेश के लिए कोई दस्तावेज़ नहीं मिला, और न ही पृष्ठभूमि में इनपुट ऑडियो कतार को पुनरारंभ करना संभव है।
मैंने ऐसा सोचा। :-( –