מאפייני אודיו

נגני האודיו תומכים במאפיינים שמגדירים את אופן הטיפול של מערכת האודיו ההחלטות לגבי הניתוב, הנפח והמיקוד עבור המקור שצוין. הגשת מועמדות יכולים לצרף מאפיינים להפעלת אודיו (למשל, מוזיקה שמושמעת על ידי שירות סטרימינג או התראה על אימייל חדש) ולאחר מכן להעביר את האודיו מאפייני מקור ל-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.