Android 10 की रिलीज़ में, हाई रिज़ॉल्यूशन ऑडियो के लिए ये सुधार किए गए हैं:
- फ़्लोट: WAV और FLAC कोडेक के साथ-साथ एक्सट्रैक्टर को अपडेट किया गया है, ताकि वे फ़्लोट (लॉसलेस प्रिसिशन के 24 से ज़्यादा बिट) के साथ काम कर सकें. डाउनमिक्स और वर्चुअलाइज़र इफ़ेक्ट को फ़्लोट में अपडेट किया गया है. MediaPlayer (NuPlayer) को सटीक जानकारी अपडेट करने की अनुमति है.
- ज़्यादा फ़्रीक्वेंसी: WAV और FLAC कोडेक के साथ-साथ एक्सट्रैक्टर को 192 किलोहर्ट्ज़ के साथ काम करने के लिए अपडेट किया गया है. Android में डिफ़ॉल्ट रूप से उपलब्ध इफ़ेक्ट की जांच, स्टैंडर्ड फ़्रीक्वेंसी पर 192 किलोहर्ट्ज़ के साथ काम करने के लिए की जाती है. स्टैंडर्ड फ़्रीक्वेंसी के तौर पर 88.2 किलोहर्ट्ज़, 96 किलोहर्ट्ज़, 176.4 किलोहर्ट्ज़, और 192 किलोहर्ट्ज़ का इस्तेमाल किया जा सकता है.
- मल्टीचैनल: Android में वीडियो चलाने के डिफ़ॉल्ट इफ़ेक्ट की जांच, आठ चैनलों के लिए मल्टीचैनल की सुविधा के साथ की जाती है.
- Timing: टाइमिंग की जानकारी, पूरे ऑडियो फ़्रेमवर्क में शामिल होती है.
Android 9 से, यहां दी गई सुविधाओं को लागू करने के लिए, पार्टनर को कुछ भी करने की ज़रूरत नहीं है:
- क्लाइंट के आउटपुट ट्रैक की संख्या 14 से बढ़कर 40 हो जाती है. ऐसा इसलिए, क्योंकि Android 8.x में
AudioTrack
के सीमित क्लाइंट इंस्टेंस, ऐप्लिकेशन के लिए एक समस्या रहे हैं. - क्लाइंट/सर्वर की मेमोरी को 4 एमबी से बढ़ाकर 32 एमबी कर दिया गया है. यह डिवाइस की कुल मेमोरी पर निर्भर करता है. इससे एक साथ ज़्यादा हाई-रिज़ॉल्यूशन वाले ऑडियो ट्रैक इस्तेमाल किए जा सकते हैं.
- मिक्स किए गए कुल ट्रैक की संख्या 32 से बढ़कर 256 हो जाती है, ताकि ऐप्लिकेशन और सिस्टम यूज़र इंटरफ़ेस (यूआई) के बीच संसाधनों के इस्तेमाल को लेकर होने वाले विवाद को रोका जा सके.
आउटपुट इफ़ेक्ट में बदलाव
Android 11 की रिलीज़ में हुए बदलावों के बारे में जानने के लिए, ऑडियो इफ़ेक्ट देखें.
Android 9 रिलीज़ होने से पहले, इफ़ेक्ट चेन प्रोसेसिंग को स्टीरियो int16 सैंपल फ़ॉर्मैट में लागू किया गया था. इसकी कई सीमाएं थीं:
- सभी आउटपुट इफ़ेक्ट, फ़्लोटिंग पॉइंट ऑडियो डेटा को int16 में बदलने के लिए मजबूर करते हैं. इससे सटीक जानकारी नहीं मिलती.
- दो से ज़्यादा चैनलों वाले आउटपुट सिंक से आउटपुट इफ़ेक्ट अस्वीकार कर दिए गए.
Android 9 की रिलीज़ में, इफ़ेक्ट चेन प्रोसेसिंग पाइपलाइन को अपग्रेड किया गया है. इससे मल्टीचैनल फ़्लोट फ़ॉर्मैट का इस्तेमाल किया जा सकता है. खास बातें:
- Android सॉफ़्टवेयर इफ़ेक्ट को पहले ही स्टीरियो फ़्लोट में माइग्रेट कर दिया गया है.
- लेगसी इफ़ेक्ट, फ़ॉर्मैट अडैप्टर के साथ काम करते हैं. ये अडैप्टर, ज़रूरत के हिसाब से फ़्लोट को int16 में बदलते हैं.
आउटपुट इफ़ेक्ट लागू करना
आउटपुट इफ़ेक्ट के लिए रेफ़रंस के तौर पर लागू करने की सुविधा, frameworks/av/media/libeffects
में उपलब्ध है.
Android 10 रिलीज़ के लिए, कस्टम आउटपुट इफ़ेक्ट लागू करने वाले पार्टनर को यह काम करना चाहिए:
- मल्टीचैनल फ़्लोट फ़ॉर्मैट के साथ काम करने के लिए, आउटपुट इफ़ेक्ट अपडेट करें:
- Int16 प्रोसेसिंग की सुविधा अब ज़रूरी नहीं है.
- आउटपुट चैनल की संख्या 2 से 8 तक होनी चाहिए. आने वाले समय में इस्तेमाल करने के लिए, इनकी संख्या 1 से 30 तक होनी चाहिए.
- इंसर्ट इफ़ेक्ट के लिए, इनपुट चैनल की संख्या और आउटपुट चैनल की संख्या एक जैसी होनी चाहिए. ऑक्सिलरी इफ़ेक्ट में, इनपुट चैनल की संख्या 1 (मोनो) दिखती है.
(1 << n) - 1
के चैनल पोज़िशन मास्क (कैननिकल) और चैनल इंडेक्स मास्क, दोनों के साथ काम करता है.
- अगर आपको वेंडर के लेगसी आउटपुट इफ़ेक्ट का इस्तेमाल जारी रखना है और उन्हें अपडेट नहीं किया जा सकता, तो लेगसी कोड की पुष्टि इस तरह करें:
- लेगसी आउटपुट (इंसर्ट) इफ़ेक्ट को
EFFECT_CMD_SET_CONFIG
में काम न करने वाले कॉन्फ़िगरेशन को अस्वीकार करना होगा.- देखें कि फ़ॉर्मैट int16 है या नहीं.
- देखें कि इनपुट और आउटपुट चैनल मास्क स्टीरियो हों.
- अगर इनमें से कोई भी जांच पूरी नहीं होती है, तो
-EINVAL
दिखाएं.
- लेगसी आउटपुट (सहायक) इफ़ेक्ट, AudioFlinger कॉन्फ़िगर करता है. इसमें मोनो इनपुट चैनल मास्क और मल्टीचैनल आउटपुट चैनल मास्क शामिल होते हैं. हालांकि, यह इस बात पर निर्भर करता है कि आउटपुट सिंक मल्टीचैनल है या नहीं.
उन्हें
EFFECT_CMD_SET_CONFIG
में काम न करने वाले कॉन्फ़िगरेशन को अस्वीकार करना होगा.- देखें कि फ़ॉर्मैट int16 है या नहीं.
- देखें कि इनपुट चैनल मास्क मोनो हो और आउटपुट चैनल मास्क स्टीरियो हो.
- अगर इनमें से कोई भी जांच पूरी नहीं होती है, तो
-EINVAL
दिखाएं.
- लेगसी कोड की पुष्टि करें. यह न मान लें कि यह काम करता है!
- लेगसी आउटपुट (इंसर्ट) इफ़ेक्ट को