לכידה במקביל

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

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

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

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

דרישות CDD

ראה CDD לדרישות לתמיכה בלכידה בו זמנית.

לכיד מצבים מ-HAL אודיו

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

במקביל יכולה לקרות בין הדברים הבאים:

  • מספר זרמי קלט ממעבד היישומים (AP)
  • זרמי קלט ושיחה קולית
  • זרמי קלט ו-DSP של אודיו המיישמת זיהוי מילת הפעלה בעוצמה נמוכה

פעילות במקביל של זרמי קלט AP

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

לכל הפחות, ה-HAL האודיו חייב לתמוך במופע אחד לפחות של כל פרופיל קלט ( mixPort of role sink ) המופיע בקובץ התצורה הפתוח והפעיל .

בחירת מכשיר

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

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

אם הטכנולוגיה תואמת, מומלץ ש-HAL האודיו ותת-המערכת יאפשרו ללכוד זרמים שונים ממכשירים שונים, כגון אוזניות בלוטות' ומיקרופון מובנה.

אם יש אי תאימות (לדוגמה שני מכשירים חולקים את אותו ממשק אודיו דיגיטלי או קצה אחורי) ה-HAL האודיו חייב לבחור איזה זרם שולט בבחירת המכשיר.

במקרה הזה:

  • המצב המתקבל חייב להיות עקבי ולהציע את אותה בחירת מכשיר כאשר אותו תרחיש חוזר על עצמו.
  • כאשר מסתיים מצב הבו-זמניות, יש לנתב את הזרם הפעיל הנותר למכשיר המבוקש בתחילה בזרם זה.

אם סדר עדיפות מוגדר על ידי HAL האודיו בין מקרי שימוש פעילים, עקוב אחר אותו סדר כפי שנמצא ב- source_priority() ב- frameworks/av/services/audiopolicy/common/include/policy.h

בחירה מראש בעיבוד

מסגרת האודיו יכולה לבקש עיבוד מקדים בזרם קלט באמצעות addEffect() או removeEffect() HAL.

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

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

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

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

שיחה קולית וצילום במקביל מ-AP

צילום מ-AP יכול להתרחש בזמן שיחה קולית פעילה. מצב זה אינו חדש באנדרואיד 10 ואינו קשור ישירות לתכונת הלכידה במקביל, אך כדאי להזכיר את ההנחיות לתרחיש זה.

יש צורך בשני סוגים שונים של לכידה מ-AP במהלך שיחה.

לכידת שיחות RX ו-TX

לכידת שיחות RX ו-TX מופעלת על ידי שימוש במקור השמע AudioSource.VOICE_UPLINK או AudioSource.VOICE_DOWNLINK ו/או ההתקן AudioDevice.IN_TELEPHONY_RX .

HALs של אודיו צריכים לחשוף בפרופיל קלט ( mixPort of role sink ) עם מסלול זמין מהמכשיר AudioDevice.IN_TELEPHONY_RX .

כאשר שיחה מחוברת (מצב השמע הוא AudioMode.IN_CALL ), אמור להיות אפשרי לפחות זרם לכידה פעיל אחד מהמכשיר AudioDevice.IN_TELEPHONY_RX .

צילום מהתקני קלט כאשר שיחה פעילה

כאשר שיחה פעילה (מצב השמע הוא AudioMode.IN_CALL ), אמור להיות אפשרי לפתוח ולהפעיל זרמי קלט מה-AP כפי שצוין בסעיף פעילות במקביל של זרמי קלט AP .

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

לכידה במקביל מ-DSP ו-AP

כאשר תת-מערכת האודיו מכילה DSP התומך בפונקציות של הקשר אודיו בהספק נמוך או פונקציות זיהוי מילות מפתח, ההטמעה אמורה לתמוך בלכידה במקביל מה-AP וה-DSP של השמע. זה כולל גם לכידה על ידי ה-DSP במהלך שלב הזיהוי הראשוני וגם לכידה על ידי ה-AP עם AudioSource.HOTWORD לאחר שהזיהוי מופעל על ידי ה-DSP.

זה אמור לבוא לידי ביטוי בדגל הלכידה במקביל המדווח על ידי מפעיל הקול HAL באמצעות מתאר היישום: ISoundTriggerHw.Properties.concurrentCapture = true .

ה-HAL האודיו צריך גם לחשוף ולהזין פרופיל ספציפי ללכידת מילות הפעלה המזוהה על ידי הדגל AudioInputFlag.HW_HOTWORD . היישום צריך לתמוך בפתיחה והפעלה של מספר זרמים בפרופיל זה לפחות שווה למספר דגמי הסאונד שניתן לטעון במקביל על ידי מפעיל הסאונד HAL.

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

השלכה על יישומי Assistant

דרישות לגבי שימוש בנתונים והתראות משתמש

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

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

שיפורים פונקציונליים עבור אנדרואיד 10

עוזרים לא חוסמים אחד את השני

ב-Android 9 ומטה, כשיש שני עוזרים שפועלים תמיד במכשיר, רק אחד מהם יכול להקשיב למילת ההפעלה שלו. לפיכך, היה צורך לעבור בין שני העוזרים. באנדרואיד 10, ה-Assistant המוגדר כברירת מחדל יכול להאזין במקביל ל-Assistant האחר. זה מביא לחוויה חלקה הרבה יותר עבור משתמשים עם שני ה-Assistants.

אפליקציות מחזיקות את המיקרופון פתוח

כאשר אפליקציות כמו Shazam או Waze מחזיקות את המיקרופון פתוח, עוזר ברירת המחדל עדיין יכול להאזין למילת ההפעלה.

עבור אפליקציות Assistant שאינן ברירת המחדל, אין שינוי בהתנהגות עבור Android 10.

יישום אודיו HAL לדוגמה

דוגמה ליישום אודיו HAL התואם את ההנחיות במסמך זה ניתן למצוא ב- AOSP .