उच्च-रिज़ॉल्यूशन ऑडियो

एंड्रॉइड 10 रिलीज़ में उच्च-रिज़ॉल्यूशन ऑडियो के लिए निम्नलिखित सुधार शामिल हैं:

  • फ्लोट: WAV, FLAC कोडेक्स और एक्सट्रैक्टर्स को फ्लोट (दोषरहित परिशुद्धता के 24+ बिट्स) का समर्थन करने के लिए अद्यतन किया गया है। डाउनमिक्स और वर्चुअलाइज़र प्रभाव फ़्लोट करने के लिए अद्यतन किए गए हैं। MediaPlayer (NuPlayer) द्वारा अद्यतन परिशुद्धता की अनुमति है।
  • उच्च-आवृत्ति: WAV, FLAC कोडेक्स और एक्सट्रैक्टर्स को 192 kHz का समर्थन करने के लिए अद्यतन किया गया है। मानक आवृत्तियों पर 192 kHz समर्थन के लिए एंड्रॉइड द्वारा प्रदत्त डिफ़ॉल्ट प्रभावों का परीक्षण किया जाता है। अनुमत मानक आवृत्तियाँ 88.2 kHz, 96 kHz, 176.4 kHz और 192 kHz हैं।
  • मल्टीचैनल: आठ चैनलों के लिए मल्टीचैनल समर्थन के लिए डिफ़ॉल्ट एंड्रॉइड प्लेबैक प्रभावों का परीक्षण किया जाता है।
  • समय: समय की जानकारी पूरे ऑडियो ढांचे में शामिल है।

Android 9 में प्रारंभ करके, निम्नलिखित सुधारों के लिए किसी भागीदार कार्यान्वयन की आवश्यकता नहीं है:

  • एक साथ क्लाइंट आउटपुट ट्रैक की संख्या 14 से बढ़कर 40 हो जाती है, क्योंकि एंड्रॉइड 8.x में ऐप्स के लिए AudioTrack के सीमित क्लाइंट इंस्टेंस एक समस्या रहे हैं।
  • एक साथ अधिक उच्च-रिज़ॉल्यूशन ऑडियो ट्रैक की अनुमति देने के लिए अधिकतम क्लाइंट/सर्वर मेमोरी 4 एमबी से बढ़कर 32 एमबी (कुल डिवाइस मेमोरी के आधार पर) हो जाती है।
  • ऐप्स और सिस्टम यूआई के बीच संसाधन विवाद को रोकने के लिए कुल मिश्रित ट्रैक 32 से बढ़कर 256 हो गए हैं।

आउटपुट प्रभाव बदल जाता है

Android 11 रिलीज़ परिवर्तनों के लिए ऑडियो प्रभाव देखें।

एंड्रॉइड 9 रिलीज से पहले, प्रभाव श्रृंखला प्रसंस्करण को स्टीरियो int16 नमूना प्रारूप में लागू किया गया था। इसकी कई सीमाएँ थीं:

  • सभी आउटपुट प्रभावों ने फ़्लोटिंग पॉइंट ऑडियो डेटा से int16 में रूपांतरण को मजबूर कर दिया, जिससे सटीकता का नुकसान हुआ।
  • दो से अधिक चैनल संख्या वाले आउटपुट सिंक से आउटपुट प्रभाव अस्वीकार कर दिए गए थे।

एंड्रॉइड 9 रिलीज में, मल्टीचैनल फ्लोट प्रारूप का समर्थन करने के लिए प्रभाव श्रृंखला प्रसंस्करण पाइपलाइन को अपग्रेड किया गया है। प्रमुख बिंदु:

  • एंड्रॉइड सॉफ़्टवेयर प्रभाव पहले से ही स्टीरियो फ़्लोट में माइग्रेट हो चुके हैं।
  • लीगेसी प्रभाव प्रारूप एडेप्टर के साथ समर्थित हैं, जो आवश्यकतानुसार फ्लोट को int16 में परिवर्तित करते हैं।

आउटपुट प्रभाव लागू करें

आउटपुट प्रभावों के लिए एक संदर्भ कार्यान्वयन frameworks/av/media/libeffects के अंतर्गत उपलब्ध है।

अपने स्वयं के कस्टम आउटपुट प्रभाव लागू करने वाले भागीदारों को Android 10 रिलीज़ के लिए निम्नलिखित कार्य करना चाहिए:

  • मल्टीचैनल फ़्लोट प्रारूप का समर्थन करने के लिए आउटपुट प्रभाव अपडेट करें:
    • Int16 प्रसंस्करण समर्थन की अब आवश्यकता नहीं है।
    • समर्थन आउटपुट चैनल 2-8 तक गिना जाता है (भविष्य की अनुकूलता के लिए 1-30 से गिनती पर विचार करें)।
    • समर्थन इनपुट चैनल सम्मिलित प्रभावों के लिए आउटपुट चैनल गणना से मेल खाता है। सहायक प्रभावों में 1 (मोनो) की इनपुट चैनल गिनती देखी जाती है।
    • दोनों चैनल स्थिति मास्क (कैनोनिकल) और चैनल इंडेक्स मास्क (1 << n) - 1 का समर्थन करें।
  • यदि आपको लीगेसी विक्रेता आउटपुट प्रभावों का समर्थन जारी रखना है और उन्हें अपडेट नहीं कर सकते हैं, तो लीगेसी कोड को निम्नानुसार सत्यापित करें:
    • लीगेसी आउटपुट (इंसर्ट) प्रभावों को EFFECT_CMD_SET_CONFIG में असमर्थित कॉन्फ़िगरेशन को अस्वीकार करना होगा
      • जांचें कि प्रारूप int16 है।
      • जांचें कि इनपुट और आउटपुट चैनल मास्क स्टीरियो हैं।
      • यदि कोई भी चेक विफल हो जाता है, तो -EINVAL लौटाएँ।
    • लीगेसी आउटपुट (सहायक) प्रभाव ऑडियोफ्लिंगर द्वारा मोनो इनपुट चैनल मास्क और संभावित मल्टीचैनल आउटपुट चैनल मास्क के साथ कॉन्फ़िगर किए जाते हैं, यह इस पर निर्भर करता है कि आउटपुट सिंक मल्टीचैनल है या नहीं। उन्हें EFFECT_CMD_SET_CONFIG में असमर्थित कॉन्फ़िगरेशन को अस्वीकार करना होगा
      • जांचें कि प्रारूप int16 है।
      • जांचें कि इनपुट चैनल मास्क मोनो है और आउटपुट चैनल मास्क स्टीरियो है।
      • यदि कोई भी चेक विफल हो जाता है, तो -EINVAL लौटाएँ।
    • लीगेसी कोड सत्यापित करें. यह मत समझो कि यह काम करता है!