תכונות שמע

נגני אודיו תומכים בתכונות המגדירות כיצד מערכת השמע מתמודדת עם החלטות ניתוב, עוצמת קול והתמקדות עבור המקור שצוין. יישומים יכולים לצרף תכונות להשמעת אודיו (כגון מוזיקה המושמעת על ידי שירות הזרמה או הודעה בדוא"ל חדש) ולאחר מכן להעביר את תכונות מקור השמע למסגרת, שבה מערכת השמע משתמשת בתכונות כדי לקבל החלטות ערבוב ולהודיע ​​על יישומים. על מצב המערכת.

באנדרואיד 4.4 ואילך, המסגרת קיבלה החלטות ערבוב תוך שימוש בסוג זרם השמע בלבד. עם זאת, ביסוס החלטות כאלה על סוג הזרם היה מגביל מדי מכדי לייצר פלט איכותי במספר יישומים והתקנים. לדוגמה, במכשיר נייד, חלק מהיישומים (כלומר מפות Google) שיחקו הוראות נסיעה בסוג הזרם STREAM_MUSIC; עם זאת, במכשירים ניידים במצב הקרנה (כלומר Android Auto), יישומים אינם יכולים לערבב כיווני נסיעה עם זרמי מדיה אחרים.

שימוש ב- API תכונת אודיו , יישומים מספקים מערכת השמע עם מידע מפורט על מקור אודיו ספציפי, כולל שימוש (למה המקור משחק), סוג התוכן (מה המקור משחק), דגלים (איך המקור יכלול שחקו), והקשרים (חדשים באנדרואיד 9). תחביר:

AudioAttributes {
    mUsage
    mContentType
    mSource
    mFlags
    mTags / mFormattedTags / mBundle    (key value pairs)
}
  • שימוש. מציין מדוע המקור מתנגן ושולט בהחלטות ניתוב, מיקוד וכמות.
  • סוג תוכן. מציין מה המקור מנגן (מוזיקה, סרט, דיבור, סוניפיקציה, לא ידוע).
  • הקשר. ערכי שימוש מופשטים ל- HAL Audio.
  • דגלים. מציין כיצד יש להפעיל את המקור. כולל תמיכה באכיפת שמיעה (קולות תריס מצלמה נדרשים במדינות מסוימות) וסנכרון אודיו/וידאו חומרה.

לצורך עיבוד דינמיקה, יישומים חייבים להבחין בין תוכן סרטים, מוזיקה ודיבור. מידע על הנתונים עצמם עשוי להיות גם חשוב, כגון עוצמה ושווי מדגם שיא.

שימוש בתכונות

השימוש מציין את ההקשר בו משתמשים בזרם, ומספק מידע על מדוע הצליל מתנגן ולמה משמש הצליל. מידע השימוש הוא אקספרסיבי יותר מסוג זרם ומאפשר לפלטפורמות או למדיניות ניתוב לחדד נפח או החלטות ניתוב.

ספק אחד מערכי השימוש הבאים לכל מופע:

  • 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_GUIDANCE
  • USAGE_ASSISTANCE_SONIFICATION
  • USAGE_GAME
  • 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

ערכי סוג התוכן של תכונות שמע אינם שוללים זה את זה. לפרטים על סוגי תוכן, עיין API תכונת אודיו .

הקשרים

כל צליל באנדרואיד מזוהה על ידי היישום האחראי והסיבה ליצירת הצליל; ומכשיר אנדרואיד משתמש במידע זה כדי לקבוע כיצד להציג את הצליל. בשנת 8.x אנדרואיד ותחתון, יישומים יכולים לדווח סיבת קול דור שימוש בסוגי זרם מורשת (למשל AudioSystem.STREAM_MUSIC ) או AudioAttributes . בשנת 9 אנדרואיד, AudioAttributes.usage ערכים מתומצתים ברמת HAL כמו קשרים.

הקשרי שמע של HAL שימוש ב- AudioAttributes
מוּסִיקָה כְּלֵי תִקְשׁוֹרֶת
פקודה קולית USAGE_ASSISTANT
ניווט ASSISTANCE_NAVIGATION_GUIDANCE
שִׂיחָה VOICE_COMMUNICATION
רינגטון NOTIFICATION_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 // צלילי אינטראקציה של משתמשים (לחיצות על כפתורים וכו ')

דגלים

הדגלים מציינים כיצד מסגרת האודיו מחילה אפקטים על השמעת האודיו. ספק אחד או יותר מהדגלים הבאים עבור מופע:

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

במקרים כאלה, המסגרת שומרת על תאימות לאחור עם מכשירים ישנים יותר ומהדורות אנדרואיד על ידי תרגום אוטומטי של סוגי זרמי שמע מדור קודם לתכונות שמע. עם זאת, המסגרת אינה אוכפת או מבטיחה את המיפוי הזה בין מכשירים, יצרנים או גרסאות אנדרואיד.

מיפוי תאימות:

אנדרואיד 5.0 ומעלה אנדרואיד 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 (@hide) STREAM_BLUETOOTH_SCO
FLAG_AUDIBILITY_ENFORCED (@hide) STREAM_SYSTEM_ENFORCED
CONTENT_TYPE_SONIFICATION
USAGE_VOICE_COMMUNICATION_SIGNALLING
(@hide) 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

לפרטים נוספים, ראה אודיו רכב .