दिलचस्प पोस्ट
कैसे दो तारों के बीच अंतर को खोजने के लिए? Mysql2 मणि ​​स्थापित नहीं कर सकता क्लाउड कंप्यूटिंग क्या है? कई श्रेणियों के साथ बॉक्सप्लेट्स के जेफ्री चाट स्केलिंग पीएचपी का उपयोग करते हुए एक फाइल से एक निर्देशिका में दूसरी प्रतिलिपि कैसे करें? एक हेक्साडेसिमल में एक आरजीबी रंग मान कन्वर्ट पायथन में एक अलग पंक्ति पर प्रत्येक तत्व को मुद्रित करने के लिए मैं एक सूची को कैसे प्रारूपित कर सकता / सकती हूं? क्या गंज 2 टेम्पलेट इंजन के साथ कोणीय का उपयोग करना संभव है? Asp.net में एक फ़ाइल डाउनलोड कैसे लागू करें फ़ोन सत्यापन regex मुझे जावा में मानक ट्री आधारित मानचित्र कार्यान्वयन कहां मिल सकता है? एंड्रॉइड एल (एपीआई 21) – java.lang.IllegalArgumentException: सेवा आशय स्पष्ट होना चाहिए Node.js – एक निर्माता के रूप में मॉड्यूल। एक्सपोर्ट्स का उपयोग अपरिवर्तनीय संग्रह पर एक गैर-उत्परिवर्तित "जोड़" विधि के लिए सबसे अच्छा नाम क्या है? मैं सभी ड्राइव की सूची कैसे प्राप्त कर सकता हूं, लेकिन संबंधित ड्राइव प्रकार (हटाने योग्य, स्थानीय डिस्क या सीडी-रोम, डीवीडी-रोम … आदि) भी प्राप्त कर सकता हूं?

ऑडियो चलाने के लिए iOS4 पर पृष्ठभूमि दर्ज करना

पृष्ठभूमि में ऑडियो चलाने के बारे में बात करते समय दस्तावेज़ीकरण खराब ढंग से लिखा जाता है। यह इंप्रेशन देता है कि आप जिस ऑडियो को चला रहे हैं वह खेलना जारी रखने के लिए आपको करना है, बस जानकारी / info.plist फाइल के लिए एक कुंजी / वैल्यू युगल जोड़ना है, और यह जादू है।

बहरहाल, मामला यह नहीं। उदाहरण के लिए, यदि मैं एक एमपी 3 खेलता हूं जो कि 2 मिनट लंबा है, तो जाहिर है कि मैं अपने ऐप को पृष्ठभूमि में भेजने के लिए होम बटन को दबाए जाने के बाद ऑडियो चलाने में सक्षम होने के लिए काफी लंबा है। यह बात है, भले ही मेरी जानकारी। info.plist फ़ाइल में मेरे पास यह कुंजी / मान युगल है, यह ऑडियो को रोकता है और फिर एक बार जब मैं ऐप पर वापस स्विच करता हूं तब खेल शुरू होता है।

ऐप्पल कहता है कि ऑडियो समर्थन पृष्ठभूमि के लिए सभी चौखटे और ध्वनि को तब तक जारी रखना चाहिए जब तक वह समाप्त हो जाए और तब ऐप्पल आपके ऐप को निलंबित कर देगा।

तो, मेरा सवाल है: वे क्या कर रहे हैं जो मैं याद कर रहा हूं? क्या मुझे अपने नए प्रतिनिधियों को किसी तरह का उपयोग करना होगा या क्या applicationDidEnterBackground को ऑडियोडेकर पृष्ठभूमि पर कॉल करना होगा? मुझे करने के लिए, यह समझ नहीं होगा क्योंकि मैं राज्य की बचत नहीं कर रहा हूं (वे मेरे लिए तेजी से ऐप स्विचिंग के साथ करते हैं) या ऑडियो के अलावा पृष्ठभूमि में वास्तव में कुछ भी हैंडलिंग करते हैं जो कि वे कहते हैं कि स्वचालित रूप से संभाला जाना चाहिए।

Solutions Collecting From Web of "ऑडियो चलाने के लिए iOS4 पर पृष्ठभूमि दर्ज करना"

दस्तावेज से गायब होने वाला एक हिस्सा आपको अपने ऑडियो सत्र को सेट करने की आवश्यकता है।

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 

उसे जोड़ें और आप जाने के लिए अच्छा होगा

आपको कॉल करने के लिए कॉल करना पड़ता है। BackgroundTaskWithExpirationHandler: एक गीत शुरू करने से पहले (यह अग्रभूमि में चाहे या नहीं) और अंत में बैकग्राउंडटस्क जब यह समाप्त होता है

यह आईओएस को बताता है कि आप अपने ऐप को पृष्ठभूमि में डाल दिए जाने पर भी प्रोसेसिंग जारी रखने में सक्षम होना चाहते हैं। यह एक नया कार्य या धागा नहीं बनाता है, यह केवल आईओएस के लिए एक झंडा है जिसे आप चलाना चाहते हैं ऑडियो इसके बिना पूरा करने के लिए खेलेंगे, लेकिन जब आप एक और ट्रैक शुरू करना चाहते हैं, तो यह पूर्ण होने पर आपको पृष्ठभूमि में चलने में सक्षम होना चाहिए।

आप इसे इस तरह से उपयोग कर सकते हैं:

 // ivar, initialized to UIBackgroundTaskInvalid in awakeFromNib UIBackgroundTaskIdentifier bgTaskId; 

ऑडियो प्लेयर शुरू करते समय हम बीजी टास्क आईडी को बचाते हैं:

 if ([audioPlayer play]) { bgTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; } 

अब ऑडियो प्लेयर्सडिफ़फ़िनेशन चालू करना: कॉलबैक अभी भी घटित होगा क्योंकि हमने आईओएस को बताया है कि हम एक ऐसा काम कर रहे हैं जो हमें पृष्ठभूमि में डालते हैं, फिर भी जारी रखने की आवश्यकता है। इस तरह हम कॉलबैक प्राप्त करते हैं और अगली ऑडियो फ़ाइल शुरू कर सकते हैं।

 - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)success { UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid; if (self.haveMoreAudioToPlay) { newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; [self playNextAudioFile]; } if (bgTaskId != UIBackgroundTaskInvalid) { [[UIApplication sharedApplication] endBackgroundTask: bgTaskId]; } bgTaskId = newTaskId; }