2010-12-03 27 views
9

मैंने स्ट्रीमिंग संगीत प्लेयर बनाया और यह अग्रभूमि में ठीक काम करता है। लेकिन पृष्ठभूमि आईओएस 4 में, यह स्वचालित रूप से अगले गीत को नहीं चलाता है। (रिमोट कंट्रोल काम करता है) कारण AudioQueueStart return -12985 है।ऑडियोक्यूयूस्टार्ट विफल -12 9 85

मैं पहले से ही ऑडियो सत्र की जांच करता हूं। यह ठीक है। जब मैं संगीत बजाना शुरू करता हूं तो मैं AudioQueueStart का उपयोग करता हूं। आप AudioQueueStart कैसे हटा सकते हैं?

- (void)play 
{ 
    [self setupAudioQueueBuffers]; // calcluate the size to use for each audio queue buffer, and calculate the // number of packets to read into each buffer 
    OSStatus status = AudioQueueStart(self.queueObject, NULL); 
} 

मैं AudioQueueStart विषय असफल के बारे में वेब में जवाब पढ़ें।

जांच करने की एक बात यह है कि ऑडियो सत्र पहले सक्रिय है। मेरे मामले में, मैं पहले से एक नया गाना शुरू करने से पहले सत्र गीत परिवर्तन के बीच निष्क्रिय करने के लिए निर्धारित किया था: AudioSessionSetActive(false);

एक बार मैं हटा दिया इस AudioQueueStart पृष्ठभूमि से ठीक काम करता है।

+0

यदि आपका अपडेट वास्तविक समाधान है, तो क्या आप इसे अपने प्रश्न (पूर्णता के लिए) के उत्तर के रूप में पोस्ट कर सकते हैं? –

+0

क्या आपको यह पता चला? मैं पूछ रहा हूं क्योंकि कोई स्वीकार्य उत्तर नहीं है .. –

उत्तर

2

मुझे सप्ताह पहले ऐसी समस्या का भी सामना करना पड़ा। मैंने समाधान खोजने के लिए दो दिन बिताए हैं और मैंने इसे पाया है। यह लिंक मदद करेगा (यह आधिकारिक उत्तर है): http://developer.apple.com/library/ios/#qa/qa1668/_index.html

सुनिश्चित करें कि आप एप्लिकेशन DidEnterBackground कार्य हैंडलर से सत्र सक्रिय करते हैं। अब मेरा आवेदन पृष्ठभूमि में ध्वनि बजा सकता है।

1

this देखें।

आप शायद निम्नलिखित को शामिल करने की जरूरत है:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

नीचे की ओर की पुनरावृत्ति कितना महत्वपूर्ण है कि रेखा होती है। चूंकि इसका उल्लेख तीन मुख्य ऑडियो ऑडियो गाइड (AVFoundation, AudioSession, या AudioQueue) में से किसी एक में नहीं किया गया है, इसे आसानी से याद किया जा सकता है।

3

मेरे अनुभव में, -12 9 85 संदेश तब होता है क्योंकि जब आप अपने ऐप में प्लेबैक शुरू करने का प्रयास करते हैं तो एक और ऐप में पहले से ही एक ऑडियो सत्र सक्रिय होता है। विकल्प 1 हैं) उपयोगकर्ता को अन्य ऐप को बंद करने के लिए निर्देश दें, या 2) मिश्रण मोड सेट करें (kAudioSessionProperty_OverrideCategoryMixWithOthers देखें)।

मिश्रण मोड का नुकसान यह है कि यदि आप लॉक स्क्रीन कला या रिमोट कंट्रोल पर निर्भर करते हैं, तो वे मिश्रण मोड सेट के साथ काम नहीं करेंगे।

0

मुझे एक ही समस्या है। मैं AudioSessionInterruptionListener को रजिस्ट्री करता हूं, फोन कॉल करते समय ऑडियो रोकें, कॉल अंत के बाद इसे फिर से शुरू करें। लेकिन ऑडियोक्यूयू स्टार्ट को फिर से शुरू करने के लिए कॉल करते समय -12 9 85 त्रुटि कोड प्राप्त करें। मेरा समाधान यह है कि मैं 0.02s के बाद AudioQueueStart को कॉल करने का प्रयास करता हूं। मुझे कारण पता नहीं है।

0

आईओएस 7 पर, ऑडियोक्यूयूस्टार्ट '! Int' ('tni!') लौट रहा था, हालांकि मुझे यकीन है कि कोई भी यह जानकर आश्चर्यचकित नहीं होगा कि यह दस्तावेज़ या शीर्षलेख में प्रलेखित नहीं है। यह वही मुद्दा था, हालांकि, और वही फ़िक्स (पृष्ठभूमि कार्य हैंडलर में सक्रिय करने के लिए ऑडियो सत्र सेट करना) मेरे लिए काम करता था।