ऑडियो प्लेयर, ऐसे एट्रिब्यूट के साथ काम करते हैं जो ऑडियो सिस्टम के हैंडलिंग के तरीके के बारे में बताते हैं दिए गए सोर्स के लिए रूटिंग, वॉल्यूम, और फ़ोकस से जुड़े फ़ैसले लेते हैं. आवेदन किसी ऑडियो प्लेबैक में विशेषताएं जोड़ सकते हैं (जैसे, या नए ईमेल की सूचना पाने के लिए) सोर्स एट्रिब्यूट को फ़्रेमवर्क में शामिल करता है, जहां ऑडियो सिस्टम एट्रिब्यूट का इस्तेमाल करता है मिक्सिंग फ़ैसले लेने और ऐप्लिकेशन को स्थिति के बारे में सूचित करने के लिए सिस्टम.
Android 4.4 और उससे पहले के वर्शन में, फ़्रेमवर्क ने सिर्फ़ ऑडियो स्ट्रीम का टाइप तय करता है. हालांकि, स्ट्रीम टाइप के आधार पर भी ऐसे फ़ैसले लिए गए इसका इस्तेमाल, एक से ज़्यादा ऐप्लिकेशन और डिवाइसों पर क्वालिटी आउटपुट देने के लिए किया जा सकता है. उदाहरण के लिए, मोबाइल डिवाइस पर कुछ ऐप्लिकेशन (जैसे कि Google Maps) ने चलाया STREAM_MUSIC स्ट्रीम प्रकार पर ड्राइविंग दिशा निर्देश; हालांकि, मोबाइल डिवाइसों पर प्रोजेक्शन मोड (यानी Android Auto) में, ऐप्लिकेशन ड्राइविंग को मिक्स नहीं कर सकते हैं अन्य मीडिया स्ट्रीम के साथ दिशा-निर्देश.
इसका उपयोग करके ऑडियो एट्रिब्यूट एपीआई, ऐप्लिकेशन पूरी जानकारी के साथ ऑडियो सिस्टम उपलब्ध कराते हैं किसी ख़ास ऑडियो सोर्स की जानकारी, जिसमें उसका इस्तेमाल भी शामिल है (सोर्स क्यों बनाया गया है) चल रहा है), कॉन्टेंट किस तरह का है (सोर्स में क्या चल रहा है), फ़्लैग (सोर्स की जांच कैसे की जाती है) चलाया जाना चाहिए) और कॉन्टेक्स्ट (नया Android 9 में उपलब्ध). सिंटैक्स:
AudioAttributes { mUsage mContentType mSource mFlags mTags / mFormattedTags / mBundle (key value pairs) }
- इस्तेमाल. इससे पता चलता है कि सोर्स क्यों चल रहा है और उसे कंट्रोल क्यों कर रहा है रूटिंग, फ़ोकस, और वॉल्यूम से जुड़े फ़ैसले लेते हैं.
- कॉन्टेंट का टाइप. इससे पता चलता है कि सोर्स में क्या चल रहा है (संगीत, फ़िल्म, बोली, सोनिफ़िकेशन, अज्ञात).
- कॉन्टेक्स्ट. इस्तेमाल से जुड़ी वैल्यू, ऑडियो एचएएल में दिखाई जाती हैं.
- फ़्लैग. इससे पता चलता है कि सोर्स को कैसे चलाया जाए. इसमें ऑडियो को लागू करने की सुविधा भी शामिल है (इसमें कैमरा शटर की आवाज़ें ज़रूरी हैं हार्डवेयर ऑडियो/वीडियो सिंक करने की सुविधा शामिल है.
डाइनैमिक प्रोसेसिंग के लिए, ऐप्लिकेशन को मूवी, संगीत, और बोली से जुड़ा कॉन्टेंट. डेटा के बारे में जानकारी भी अहम हो सकती है, जैसे कि तेज़ आवाज़ और पीक सैंपल वैल्यू.
विशेषताओं का इस्तेमाल करें
इस्तेमाल का इस्तेमाल उस संदर्भ के बारे में बताता है जिसमें स्ट्रीम का इस्तेमाल किया जाता है. यह जानकारी देते हुए यह जानकारी कि आवाज़ क्यों चल रही है और आवाज़ का इस्तेमाल किसलिए किया गया है. किसी स्ट्रीम टाइप के मुकाबले, लाइव स्ट्रीम के इस्तेमाल की जानकारी ज़्यादा साफ़ तौर पर दी जाती है और इससे प्लैटफ़ॉर्म को बेहतर तरीके से इस्तेमाल करने में मदद मिलती है या रूटिंग से जुड़े फ़ैसलों को बेहतर बनाने के लिए, रूटिंग तय करने की नीतियों का पालन किया जा सकता है.
किसी भी मामले के लिए, इनमें से कोई एक इस्तेमाल वैल्यू दें:
- USAGE_UNKNOWN
- USAGE_मीडिया
- USAGE_VOICE_COMMUNICATION
- USAGE_VOICE_COMMUNICATION_SIGNALLING
- USAGE_ALARM
- USAGE_सूचना
- USAGE_NOTIFICATION_TELEPHONY_RINGTONE
- USAGE_NOTIFICATION_COMMUNICATION_REQUEST
- USAGE_NOTIFICATION_COMMUNICATION_INSTANT
- USAGE_NOTIFICATION_COMMUNICATION_ सोचें
- USAGE_NOTIFICATION_EVENT
- USAGE_ASSISTANCE_ACCESSIBILITY
- USAGE_ASSISTANCE_NAVIGATION_MESSAGE
- USAGE_ASSISTANCE_SONIFICATION
- USAGE_गेम
- USAGE_VIRTUAL_SOURCE
- USAGE_ASSISTANT
ऑडियो एट्रिब्यूट के इस्तेमाल की वैल्यू अलग-अलग होती हैं. उदाहरण के लिए,
USAGE_MEDIA
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
और
USAGE_ALARM
परिभाषाएं; अपवादों के लिए, इसे देखें
AudioAttributes.Builder
परिभाषा शामिल नहीं है.
कॉन्टेंट किस तरह का है
कॉन्टेंट टाइप से पता चलता है कि आवाज़ क्या है और इससे सामान्य कैटगरी के बारे में पता चलता है
जैसे, मूवी, बोली या बीप/रिंगटोन. ऑडियो फ़्रेमवर्क का इस्तेमाल
कॉन्टेंट टाइप की जानकारी को चुनिंदा पोस्ट-प्रोसेसिंग के लिए कॉन्फ़िगर किया जा सकता है
ब्लॉक. कॉन्टेंट टाइप देना ज़रूरी नहीं है. हालांकि, आपको अपनी ज़रूरत के हिसाब से
जब कॉन्टेंट टाइप के बारे में पता हो, जैसे कि
फ़िल्म स्ट्रीमिंग सेवा के लिए CONTENT_TYPE_MOVIE
या
संगीत प्लेबैक ऐप्लिकेशन के लिए CONTENT_TYPE_MUSIC
.
किसी भी मामले के लिए, कॉन्टेंट टाइप की इन वैल्यू में से कोई एक डालें:
CONTENT_TYPE_UNKNOWN
(डिफ़ॉल्ट)CONTENT_TYPE_MOVIE
CONTENT_TYPE_MUSIC
CONTENT_TYPE_SONIFICATION
CONTENT_TYPE_SPEECH
ऑडियो एट्रिब्यूट के कॉन्टेंट टाइप की वैल्यू, अलग-अलग होती हैं. कॉन्टेंट टाइप की जानकारी के लिए, यह देखें ऑडियो एट्रिब्यूट एपीआई का इस्तेमाल करते हैं.
संदर्भ
Android में हर आवाज़ की पहचान, ज़िम्मेदार ऐप्लिकेशन और वजह से की जाती है
आवाज़ जनरेट करने के लिए; और Android डिवाइस इस जानकारी का इस्तेमाल इन कामों के लिए करता है
तय करें कि आवाज़ कैसे दिखानी है. Android 8.x और उससे पहले के वर्शन में, ऐप्लिकेशन ये काम कर सकते हैं
लेगसी स्ट्रीम टाइप की मदद से, साउंड जनरेट होने की वजह की जानकारी दो. (उदाहरण के लिए,
AudioSystem.STREAM_MUSIC
) या AudioAttributes
. तय सीमा में
Android 9, AudioAttributes.usage
की वैल्यू
एचएएल लेवल पर, कॉन्टेक्स्ट के तौर पर एब्सट्रैक्ट किए जाते हैं.
एचएएल ऑडियो कॉन्टेक्स्ट | AudioAttributes का इस्तेमाल |
---|---|
संगीत | मीडिया |
VOICE_COMMAND | USAGE_ASSISTANT |
नेविगेट करना | ASSISTANCE_NAVIGATION_ अभियान |
कॉल करें | वॉइसओवर की आवाज़ |
रिंगटोन | सूचना_RINGTONE |
सूचना | सूचना |
अलार्म | अलार्म |
सिस्टम साउंड | ASSISTANCE_SONIFICATION |
कोई जानकारी नहीं है | कोई जानकारी नहीं है |
किसी भी क्वेरी के लिए, इनमें से कोई एक CONTEXT_NUMBER
वैल्यू दी जा सकती है
उदाहरण:
- MUSIC_context // संगीत प्लेबैक
- NAVIGATION_context // नेविगेशन के निर्देश
- VOICE_COMMAND_context // बोलकर निर्देश देने का सेशन
- CALL_RING_context // वॉइस कॉल की घंटी बजना
- CALL_context // वॉइस कॉल
- ALARM_context // Android से अलार्म की आवाज़
- NOTIFICATION_context // सूचनाएं
- सिस्टम_आवाज़_context // उपयोगकर्ता के इंटरैक्शन की आवाज़ें (बटन क्लिक वगैरह)
झंडे
फ़्लैग से पता चलता है कि ऑडियो फ़्रेमवर्क, ऑडियो प्लेबैक पर किस तरह असर डालता है. किसी उदाहरण के लिए, यहां दिए गए एक या एक से ज़्यादा फ़्लैग उपलब्ध कराएं:
FLAG_AUDIBILITY_ENFORCED
. यह पक्का करने के लिए सिस्टम से अनुरोध करता है कि आवाज़ की ऑडिबिलिटी से जुड़ी सेटिंग. लेगसी की ज़रूरतों को पूरा करने के लिए इसका इस्तेमाल करेंSTREAM_SYSTEM_ENFORCED
(जैसे, कैमरे के शटर की आवाज़ को ज़बरदस्ती चालू करना).HW_AV_SYNC
. आउटपुट स्ट्रीम चुनने के लिए, सिस्टम से अनुरोध करता है जो हार्डवेयर A/V सिंक करने की सुविधा देता है.
ऑडियो एट्रिब्यूट के फ़्लैग आम तौर पर इस्तेमाल नहीं होते और इन्हें एक साथ इस्तेमाल किया जा सकता है. जानकारी के लिए इन फ़्लैग का इस्तेमाल करते हैं, तो ऑडियो एट्रिब्यूट एपीआई का इस्तेमाल करते हैं.
उदाहरण
इस उदाहरण में, AudioAttributes.Builder
नया AudioTrack
इस्तेमाल करने के लिए AudioAttributes
उदाहरण:
AudioTrack myTrack = new AudioTrack( new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_MEDIA) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) .build(), myFormat, myBuffSize, AudioTrack.MODE_STREAM, mySession);
इनके साथ काम करता है
ऐप्लिकेशन बनाते या अपडेट करते समय, ऐप्लिकेशन डेवलपर को ऑडियो एट्रिब्यूट का इस्तेमाल करना चाहिए Android 5.0 और इसके बाद के वर्शन के लिए. हालांकि, ऐप्लिकेशन एट्रिब्यूट का फ़ायदा पाने के लिए ज़रूरी है; वे लेगसी स्ट्रीम टाइप को हैंडल कर सकते हैं या एट्रिब्यूट के बारे में जानकारी न रखें. उदाहरण के लिए, एक सामान्य मीडिया प्लेयर, जो ताकि उस पर चल रहे कॉन्टेंट के बारे में कुछ भी पता चल सके).
ऐसे मामलों में, फ़्रेमवर्क पुराने सिस्टम के साथ काम करता है लेगसी ऑडियो स्ट्रीम के अपने-आप अनुवाद होने की सुविधा से, डिवाइसों और Android रिलीज़ ऑडियो एट्रिब्यूट में टाइप करें. हालांकि, यह फ़्रेमवर्क लागू नहीं होता या सभी डिवाइसों, मैन्युफ़ैक्चरर या Android रिलीज़ पर इस मैपिंग की गारंटी देता है.
कंपैटिबिलिटी मैपिंग:
Android 5.0 और बाद के वर्शन | Android 4.4 और इससे पहले के वर्शन |
---|---|
CONTENT_TYPE_SPEECH USAGE_VOICE_COMMUNICATION
|
STREAM_VOICE_CALL
|
CONTENT_TYPE_SONIFICATION USAGE_ASSISTANCE_SONIFICATION
|
STREAM_SYSTEM
|
CONTENT_TYPE_SONIFICATION USAGE_NOTIFICATION_RINGTONE
|
STREAM_RING
|
CONTENT_TYPE_MUSIC USAGE_UNKNOWN USAGE_MEDIA USAGE_GAME USAGE_ASSISTANCE_ACCESSIBILITY USAGE_ASSISTANCE_NAVIGATION_GUIDANCE
|
STREAM_MUSIC
|
CONTENT_TYPE_SONIFICATION USAGE_ALARM
|
STREAM_ALARM
|
CONTENT_TYPE_SONIFICATION USAGE_NOTIFICATION USAGE_NOTIFICATION_COMMUNICATION_REQUEST USAGE_NOTIFICATION_COMMUNICATION_INSTANT USAGE_NOTIFICATION_COMMUNICATION_DELAYED USAGE_NOTIFICATION_EVENT
|
STREAM_NOTIFICATION
|
CONTENT_TYPE_SPEECH
|
(@छिपाएं) STREAM_BLUETOOTH_SCO
|
FLAG_AUDIBILITY_ENFORCED
|
(@छिपाएं) STREAM_SYSTEM_ENFORCED
|
CONTENT_TYPE_SONIFICATION USAGE_VOICE_COMMUNICATION_SIGNALLING
|
(@छिपाएं) STREAM_DTMF
|
ऐसे स्ट्रीम टाइप जो अब काम नहीं करते
Android 9, इन स्ट्रीम टाइप के लिए सेवा बंद कर देता है वाहन संबंधित इस्तेमाल:
- स्ट्रीम_डिफ़ॉल्ट
- स्ट्रीम_VOICE_कॉल
- स्ट्रीम सिस्टम
- स्ट्रीम_रिंग
- स्ट्रीम_संगीत
- स्ट्रीम_ALARM
- स्ट्रीम_सूचना
- स्ट्रीम_BLUETOOTH_SCO
- स्ट्रीम_सिस्टम_ENFORCED
- स्ट्रीम_डीटीएमएफ़
- स्ट्रीम_टीटीएस
- STREAM_ACCESSIBILITY
ज़्यादा जानकारी के लिए, यह देखें ऑटोमोटिव ऑडियो.