सिस्टम की स्थिरता और कम पावर वाले मोड में जाने की क्षमता (जैसे, सस्पेंड-टू-रैम (एस2आर) या सस्पेंड-टू-डिस्क (एस2डी)) को बनाए रखने के लिए, यह ज़रूरी है कि पावर ट्रांज़िशन के दौरान ऑडियो संसाधनों को सही तरीके से मैनेज किया जाए.
ऐसा हो सकता है कि सिस्टम के सस्पेंड होने पर, ऐप्लिकेशन हमेशा ऑडियो इनपुट या आउटपुट स्ट्रीम रिलीज़ न करें. चालू ऑडियो स्ट्रीम की वजह से, ऑडियो सबसिस्टम और उससे जुड़े हार्डवेयर, आइडल मोड में नहीं जा पाते. इससे, सिस्टम-ऑन-अ-चिप (एसओसी) डीप स्लीप मोड में नहीं जा पाता. इस वजह से, सस्पेंड करने की कोशिशें नाकाम हो जाती हैं और पावर की खपत बढ़ जाती है.
ओईएम को अपने ऑडियो हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) के लागू करने के तरीके में, फ़ेलबैक का मज़बूत तरीका लागू करना होगा, ताकि सस्पेंड ट्रांज़िशन के दौरान चालू ऑडियो स्ट्रीम को मैनेज किया जा सके. प्लेटफ़ॉर्म की स्थिरता के लिए यह ज़रूरी है. भले ही, ऐप्लिकेशन का व्यवहार कैसा भी हो.
ऐप्लिकेशन को ऑडियो संसाधनों को सही तरीके से मैनेज करना चाहिए. हालांकि, सिस्टम, पावर स्टेट ट्रांज़िशन के लिए इस पर भरोसा नहीं कर सकता. संसाधनों को डीऐक्टिवेट करने के लिए, ऑडियो एचएएल सही लेयर है. इससे यह पक्का किया जा सकता है कि सिस्टम, सस्पेंड मोड में जा सके. हम पावर मैनेजमेंट के लिए, इस तरीके का सुझाव देते हैं.
पावर मैनेजमेंट लागू करना
ऑडियो एचएएल में, पावर मैनेजमेंट का मज़बूत तरीका लागू करने के लिए, यह तरीका अपनाएं:
सिस्टम की पावर स्टेट में होने वाले बदलावों का पता लगाएं. खास तौर पर, सस्पेंड मोड में जाने के दौरान होने वाले बदलावों का.
अगर सिस्टम सस्पेंड होने की तैयारी कर रहा है और इस दौरान कोई ऑडियो स्ट्रीम (इनपुट और आउटपुट, दोनों) अब भी चालू है, तो यह कार्रवाई करें:
- हार्डवेयर आउटपुट स्ट्रीम रिलीज़ करें और ऑडियो फ़्रेमवर्क से आने वाले डेटा को खारिज करें.
- हार्डवेयर इनपुट स्ट्रीम रिलीज़ करें और फ़्रेमवर्क को साइलेंट ऑडियो भेजें.
एचएएल-लेवल पर की गई इस कार्रवाई से यह पक्का होता है कि ऑडियो हार्डवेयर, आइडल मोड में जा सकता है. इससे सिस्टम, सस्पेंड मोड में जा पाता है. भले ही, किसी ऐप्लिकेशन ने अपने ऑडियो संसाधन रिलीज़ न किए हों.
जब सिस्टम, सस्पेंड मोड से वापस आता है, तो ऑडियो सबसिस्टम को उसकी चालू स्थिति में वापस लाएं. इसमें, पहले से म्यूट की गई आउटपुट स्ट्रीम को अनम्यूट करना और इनपुट स्ट्रीम को फिर से चालू करना शामिल है. इससे ऐप्लिकेशन, ऑडियो चलाने और कैप्चर करने की प्रोसेस जारी रख पाते हैं.
ऐप्लिकेशन पर असर
सस्पेंड मोड के दौरान, ऑडियो संसाधनों के एचएएल-लेवल पर किए जाने वाले मैनेजमेंट से, ऐप्लिकेशन पर इन तरीकों से असर पड़ता है:
- ट्रांसपैरेंट सस्पेंड: माइक्रोफ़ोन का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, सिस्टम सस्पेंड (एस2डी या एस2आर मोड में जाना) ट्रांसपैरेंट होता है.
- ट्रांज़िशन के दौरान ऑडियो म्यूट होना: सस्पेंड ट्रांज़िशन शुरू होने के बाद, चालू स्ट्रीम को एचएएल पर म्यूट कर दिया जाता है. ऐप्लिकेशन चलता रहता है, लेकिन सस्पेंड मोड के दौरान उसे सिर्फ़ म्यूट किया गया ऑडियो मिलता है.
- अपने-आप फिर से शुरू होना: सिस्टम के फिर से शुरू होने पर, ऐप्लिकेशन को फिर से असली ऑडियो डेटा मिलने या भेजने लगता है. इसके लिए, संसाधनों को फिर से हासिल करने या रिकवर करने की ज़रूरत नहीं होती.