2012-03-11 20 views
5

मैं रेडियो अलार्म घड़ी पर काम कर रहा हूं, और मेरे पास कुछ समस्याएं हैं। मैं अलार्म के लिए स्थानीय नोटिफिकेशन का उपयोग कर रहा हूं, इसलिए यदि ऐप नहीं चल रहा है तो इसमें एक नरम फॉलबैक है।डिवाइस लॉक होने पर ईवेंट का जवाब

मुझे डिवाइस की सीमाओं के बारे में अच्छी तरह से पता है, और मुझे पता है कि डिवाइस पृष्ठभूमि में चला गया है, तो मैं क्या कर सकता हूं और नहीं कर सकता।

लेकिन मेरा प्रश्न यह है: मैंने डिवाइस को लॉक करते समय अन्य ऐप्स को ऑडियो स्ट्रीमर शुरू करने के लिए देखा है। यह कैसे संभव है? यह निष्पादन-समय सीमा के अंदर हो सकता है?

इसे लागू करने का सबसे अच्छा तरीका कैसा है? डिवाइस लॉक होने पर मैं स्ट्रीमिंग सत्र को सक्रिय कर सकता हूं?

संपादित

स्पष्ट करने के लिए: मैं जानता हूँ कि मैं कैसे पृष्ठभूमि में ऑडियो खेलने हैं। लेकिन जब कोई स्थानीय अधिसूचना या कुछ अन्य घटनाएं आग लगती हैं तो यह समस्या ऑडियो-प्लेबैक को ट्रिगर कर रही है।

ऐसा करने वाला एक ऐप Radio Alarm Clock है। मैंने अभी तक लंबे समय तक कोशिश नहीं की है। लेकिन ऐसा लगता है। ऐप का एक वीडियो डेमो: http://www.youtube.com/watch?v=KJQiFOcdBWk

+0

जब मैंने पहले उत्तर दिया तो मैंने सोचा कि यह थोड़ा आसान था, इसे लागू करने की कोशिश में मैंने एक ही समस्या में भाग लिया है। क्या आप मुझे उन अन्य ऐप्स पर इंगित कर सकते हैं जो यह काम कर रहे हैं? –

+0

एक ऐसा ऐप इंगित करने के लिए मेरा उत्तर संपादित किया जो यह करता है। – Jensen2k

+0

ऐसा लगता है कि यह सब संभव है, मैंने समस्या का नया दृष्टिकोण शामिल करने के लिए अपना उत्तर संपादित किया –

उत्तर

3

क्या आपने अपना पृष्ठभूमि कार्य पहले ही घोषित कर दिया है?

कुछ प्रकार के पृष्ठभूमि निष्पादन के लिए समर्थन उन ऐप द्वारा अग्रिम रूप से घोषित किया जाना चाहिए जो उनका उपयोग करते हैं। एक ऐप अपनी Info.plist फ़ाइल का उपयोग कर किसी सेवा के लिए समर्थन की घोषणा करता है। UIBackgroundModes कुंजी को अपनी Info.plist फ़ाइल में जोड़ें और उसके मान को एक या अधिक स्ट्रिंग्स वाले एक सरणी में सेट करें:

audio - ऐप पृष्ठभूमि में उपयोगकर्ता को श्रव्य सामग्री बजाता है। (यह सामग्री स्ट्रीमिंग ऑडियो या वीडियो सामग्री AirPlay का उपयोग कर भी शामिल है।)

iOS App Programming Guide - Implementing Long Running Background Tasks

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

के साथ न्यू उत्तर

बिग संपादित करें:

अगर सब कुछ क्रम में पहले से ही है, तो आप UIApplication विधि

- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void (^)(void))handler 
का उपयोग कर पृष्ठभूमि में चल रहा अपने अनुप्रयोग रख सकते

यहाँ विस्तृत: UIApplication Class Reference

यहां एक उदाहरण के साथ: Hour 21: Building Background-Aware Applications

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

आपके द्वारा निर्धारित टाइमर के कितने समय तक सीमाएं हो सकती हैं, मैंने पिछले 14 मिनट में इसका परीक्षण नहीं किया है।

+0

अच्छा लगता है, मैंने यह शामिल करने के लिए संपादित किया कि परियोजना में घोषणा कहां जोड़नी है। –

+0

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

+0

धन्यवाद, मैंने जवाब स्वीकार कर लिया क्योंकि मुझे लगता है कि मैं काम करूंगा, और यह एक अच्छा जवाब है। लेकिन यह मेरे उपयोग के मामले में काम नहीं किया। मैंने जो किया वह एमएमपीडीप स्लीपप्रेंटर को कार्यान्वित कर रहा था जो यहां पाया जा सकता है: https://github.com/marcop/MMPDeepSleepPreventer किसी भी तरह से सभी मदद के लिए धन्यवाद! :-) – Jensen2k

संबंधित मुद्दे