נגני האודיו תומכים במאפיינים שמגדירים את אופן הטיפול של מערכת האודיו ההחלטות לגבי הניתוב, הנפח והמיקוד עבור המקור שצוין. הגשת מועמדות יכולים לצרף מאפיינים להפעלת אודיו (למשל, מוזיקה שמושמעת על ידי שירות סטרימינג או התראה על אימייל חדש) ולאחר מכן להעביר את האודיו מאפייני מקור ל-framework, שבו מערכת האודיו משתמשת לקבל החלטות מורכבות וליידע בקשות בנוגע למצב המערכת.
ב-Android 4.4 ובגרסאות קודמות, המסגרת קיבלה החלטות בנוגע לשילוב רק על סמך הסוג של שידור האודיו. עם זאת, החלטות כאלה לגבי סוג השידור באופן מוגבל להפקת פלט איכותי במגוון אפליקציות ומכשירים. לדוגמה, במכשיר נייד, חלק מהאפליקציות (כמו מפות Google) הופעלו. מסלולי נסיעה בסוג הזרם STREAM_MUSIC; עם זאת, במכשירים ניידים במצב הקרנה (כלומר Android Auto), אפליקציות לא יכולות לשלב נהיגה במסלול הזה בשידורי מדיה אחרים.
באמצעות אודיו Attribute API, אפליקציות מספקות למערכת האודיו מידע על מקור אודיו ספציפי, כולל שימוש (הסיבות לכך שהמקור פועלת), סוג תוכן (מה המקור מופעל), דגלים (איך המקור מופעל), צריך לפעול) והקשרים (חדש ב-Android 9). תחביר:
AudioAttributes { mUsage mContentType mSource mFlags mTags / mFormattedTags / mBundle (key value pairs) }
- שימוש. מציין למה המקור מופעל ושולט קבלת החלטות לגבי תכנון מסלול, מיקוד ונפח.
- סוג התוכן. מציין מה מושמע במקור (מוזיקה, סרט, דיבור, תהודה, לא ידוע).
- הקשר. ערכי שימוש מופשטים ל-Audio HAL.
- סימונים. מציין את אופן ההפעלה של המקור. כוללת תמיכה באכיפה של יכולת השמעה (נדרשים צלילי צמצם של המצלמה במדינות מסוימות) וסנכרון אודיו/וידאו בחומרה.
לעיבוד דינמי, האפליקציות חייבות ליצור הבחנה בין סרטים, מוזיקה, ודיבור. יכול להיות שגם מידע על הנתונים עצמם, כמו עוצמת הקול וערך הדגימה המרבי.
שימוש במאפיינים
השימוש מציין את ההקשר שבו נעשה שימוש בשידור, ומספק מידע על הסיבה להפעלת הצליל ולמה הוא משמש. פרטי השימוש מועילים יותר מאשר סוג מקור נתונים, ומאפשרים פלטפורמות או מדיניות הניתוב כדי לשפר את ההחלטות בנוגע לנפח או למסלול.
מציינים אחד מערכי השימוש הבאים בכל מכונה:
- USAGE_UNKNOWN
- USAGE_MEDIA
- USAGE_VOICE_COMMUNICATION
- USAGE_VOICE_COMMUNICATION_SIGNALLING
- USAGE_ALARM
- USAGE_NOTIFICATION
- USAGE_NOTIFICATION_TELEPHONY_RINGTONE
- USAGE_NOTIFICATION_COMMUNICATION_REQUEST
- USAGE_NOTIFICATION_COMMUNICATION_INSTANT
- USAGE_NOTIFICATION_COMMUNICATION_DELAYED
- USAGE_NOTIFICATION_EVENT
- USAGE_ASSISTANCE_ACCESSIBILITY
- USAGE_ASSISTANCE_NAVIGATION_myactivity
- USAGE_ASSISTANCE_SONIFICATION
- USAGE_GAME
- USAGE_VIRTUAL_SOURCE
- USAGE_ASSISTANT
ערכי השימוש במאפייני האודיו הם בלעדיים. דוגמאות:
USAGE_MEDIA
וגם
USAGE_ALARM
הגדרות; בנושא חריגים, מתייחס
AudioAttributes.Builder
להגדרה.
סוג תוכן
סוג התוכן מגדיר את הצליל ומבטא את הקטגוריה הכללית של
התוכן כמו סרט, דיבור או ביפ/רינגטונים. ב-framework של האודיו נעשה שימוש
מידע על סוג התוכן כדי להגדיר באופן סלקטיבי את האודיו לאחר העיבוד
של משפטים יחידים, אמנם ציון סוג התוכן הוא אופציונלי, אבל צריך לכלול את הסוג
מידע בכל פעם שסוג התוכן ידוע, למשל שימוש
CONTENT_TYPE_MOVIE
עבור שירות סטרימינג של סרטים או
CONTENT_TYPE_MUSIC
לאפליקציה להפעלת מוזיקה.
מספקים אחד מהערכים הבאים של סוגי תוכן בכל מכונה:
-
CONTENT_TYPE_UNKNOWN
(ברירת מחדל) CONTENT_TYPE_MOVIE
CONTENT_TYPE_MUSIC
CONTENT_TYPE_SONIFICATION
CONTENT_TYPE_SPEECH
הערכים של סוג התוכן של מאפיין האודיו הם בלעדיים. לפרטים על סוגי תוכן, לעיין אודיו של המאפיין 'API'.
הקשרים
כל צליל ב-Android מזוהה על ידי האפליקציה והסיבה האחראים לכך
ליצירת הצליל, ומכשירי Android משתמשים במידע הזה כדי
לקבוע איך להציג את הצליל. ב-Android מגרסה 8.x ומטה, אפליקציות יכולות
לדווח על הסיבה ליצירת האודיו באמצעות סוגי השידור הקודם (למשל,
AudioSystem.STREAM_MUSIC
) או AudioAttributes
. לחשבון
Android 9, ערכים מ-AudioAttributes.usage
מופשטים ברמת HAL כהקשרים.
הקשרי אודיו עם HAL | שימוש במאפייני אודיו |
---|---|
מוזיקה | מדיה |
VOICE_Command | USAGE_ASSISTANT |
ניווט | ASSISTANCE_NAVIGATION_myactivity |
התקשר | VOICE_COMMUNICATION |
צלצול | הודעה_RINGTONE |
התראה | התראה |
התראה | התראה |
SYSTEM_SOUND | ASSISTANCE_SONIFICATION |
לא ידוע | לא ידוע |
ניתן לציין אחד מהערכים הבאים של CONTEXT_NUMBER
לכל אחד
מופע:
- MUSIC_CONTEXT // הפעלת מוזיקה
- NAVIGATION_CONTEXT // הוראות ניווט
- VOICE_Command_CONTEXT // סשן של פקודה קולית
- CALL_RING_CONTEXT // צלצול של שיחה קולית
- CALL_CONTEXT // שיחה קולית
- ALARM_CONTEXT // צליל אזעקה מ-Android
- NOTIFICATION_CONTEXT // הודעות
- SYSTEM_SOUND_CONTEXT // צלילי אינטראקציה של המשתמש (קליקים על לחצנים וכו')
דגלים
הסימונים מציינים איך ה-framework של האודיו מחילה אפקטים על הפעלת האודיו. מציינים אחד או יותר מהדגלים הבאים בשביל מכונה:
FLAG_AUDIBILITY_ENFORCED
מבקש מהמערכת לוודא יכולת ההשמעה של הצליל. משמש לטיפול בצרכים של הגרסאות הקודמותSTREAM_SYSTEM_ENFORCED
(למשל, אילוץ צלילים של תריס המצלמה).HW_AV_SYNC
המערכת מבקשת מהמערכת לבחור מקור פלט שתומך בסנכרון A/V בחומרה.
סימונים של מאפייני אודיו אינם בלעדיים ואפשר לשלב אותם. לפרטים על דגלים אלה, אודיו של המאפיין 'API'.
דוגמה
בדוגמה הזו, AudioAttributes.Builder
מגדיר את
AudioAttributes
לשימוש במכשיר AudioTrack
חדש
מופע:
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 ומעלה. עם זאת, לא ניתן שנדרש כדי להשתמש במאפיינים; הוא יכול לטפל בסוגי סטרימינג מדור קודם בלבד או לא מודע למאפיינים (כלומר, נגן מדיה גנרי לדעת כל דבר על התוכן שמוצג).
במקרים כאלה, ה-framework שומר על תאימות לאחור עם גרסאות מכשירים וגרסאות של 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 מוציאה משימוש את סוגי השידורים הבאים עבור שימוש בכלי רכב:
- STREAM_DEFAULT
- STREAM_VOICE_CALL
- STREAM_SYSTEM
- STREAM_RING
- STREAM_MUSIC
- STREAM_ALARM
- STREAM_NOTIFICATION
- STREAM_BLUETOOTH_SCO
- STREAM_SYSTEM_ENFORCED
- STREAM_DTMF
- STREAM_TTS
- STREAM_ACCESSIBILITY
פרטים נוספים זמינים במאמר Automotive Audio.