2011-01-28 4 views
9

मेरे पास एक ऐसा एप्लिकेशन है जिसमें एक सेवा और एक गतिविधि शामिल है जिसे कुछ घटनाओं के लिए सेवा द्वारा शुरू किया जा सकता है। सेवा & ऑडियोRecord & ऑडियोट्रैक कक्षाओं का उपयोग कर सकती है - जिस समय एप्लिकेशन की गतिविधि प्रदर्शित होती है। समस्या यह है कि अगर गतिविधि रोका गया है (यानी, ऑन पॉज़() कहा जाता है) मैं रिकॉर्ड थ्रेड प्राप्त करना शुरू करता हूं: बफर ओवरफ़्लो त्रुटियां?ऑडियोफ्लिंगर (5 9): रिकॉर्ड थ्रेड: गतिविधि को रोका जाने पर बफर ओवरफ़्लो?

मेरा अनुमान है कि ऑडियोरेकॉर्डर मुख्य धागे में चल रहा है। और, भले ही यह सेवा द्वारा बनाया गया था, जब गतिविधि बंद हो जाती है तो बफर ओवरफ्लो हो जाता है? ऑडियोरेकॉर्डर पढ़ने को एक अलग थ्रेड में किया जाना चाहिए भले ही यह सेवा में चल रहा हो?

किसी भी मदद की सराहना की जाएगी, धन्यवाद।

उत्तर

8

रिकॉर्ड थ्रेड बफर ओवरफ़्लो तब होता है जब आप ऑडियो रिकॉर्ड्स ऑब्जेक्ट से डेटा को पर्याप्त तेज़ी से नहीं खींच रहे होते हैं।

आप निश्चित रूप से पाश है कि एक sperate सूत्र में AudioRecord वस्तु से डेटा खींचती है चाहिए, और आप अगर अपनी गतिविधि को रोक दिया जाता है कि धागा बंद कर देना चाहिए (जब तक आप पृष्ठभूमि में रिकॉर्ड करना चाहते हैं।)

यहाँ काम कर रहे कार्यान्वयन के कुछ उदाहरण:

+0

धन्यवाद! हाँ, मैं पृष्ठभूमि में रिकॉर्ड करना चाहता हूँ – dchappelle

1

हालांकि एक पुराना सवाल है, मेरी इच्छा है कि मैं सेवाओं के साथ काम शुरू करते समय यह जवाब जानता हूं, इसलिए मैं इसे दूसरों के भविष्य के संदर्भ के लिए लॉग इन करूंगा:

अक्सर अनदेखा लेकिन सेवाओं के संबंध में बहुत महत्वपूर्ण बिंदु यह तथ्य है कि वे नहीं करते हैं स्वचालित रूप से अपने स्वयं के धागे पैदा करते हैं, लेकिन मुख्य जीयूआई थ्रेड पर चलता है। 'सेवा' शब्द पर विचार करते समय यह बहुत ही अंतर्ज्ञानी है, लेकिन फिर भी सच है। (http://developer.android.com/guide/topics/fundamentals/services.html पर पहला 'सावधानी' अनुभाग देखें)।

आप सर्विस क्लास के बजाय IntentService क्लास को विस्तारित करने पर विचार करना चाहेंगे जो "... एक डिफ़ॉल्ट कार्यकर्ता थ्रेड बना देगा जो सभी उद्देश्यों को निष्पादित करता है ... आपके एप्लिकेशन के मुख्य थ्रेड से अलग।" (http://developer.android.com/guide/topics/fundamentals/services.html)

आशा है कि किसी को यह उपयोगी लगेगा!

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