إعادة تصميم بنية SCO المُدارة للصوت

توضّح هذه الصفحة كيفية تفعيل إطار عمل الصوت وطبقة تجريد الأجهزة الصوتية (AHAL) لإدارة اتصالات SCO المتزامنة والموجّهة، وهي عملية تُعرف باسم Audio Managed SCO (AMSCO).

في Android 17 والإصدارات الأحدث، يستخدم إطار عمل الصوت في Android ميزة إدارة SCO لإدارة توجيه SCO، والتي كان يتولّاها في الأصل إطار عمل البلوتوث (BT). تنقل عملية النقل هذه حالة اتصال SCO من حالة يملكها إطار عمل البلوتوث إلى نتيجة لاحقة لنشاط بث الصوت.

من خلال مركزية ملكية توجيه الصوت ضمن إطار عمل الصوت، تعمل هذه الميزة على مواءمة تنفيذ طبقة تجريد أجهزة الصوت (HAL) لبروتوكول SCO مع ملفات تعريف البلوتوث الأخرى، مثل ملف تعريف توزيع الصوت المتقدّم (A2DP) وLE Audio. يعمل هذا التعديل على تبسيط التفاعل بين حزمتَي الاتصالات السلكية واللاسلكية وBluetooth، ما يتيح بنية توجيه صوتية أكثر قوة ومركزية.

نظرة عامة على البنية

تعمل بنية AMSCO على مركزية إدارة اتصال SCO ضمن إطار عمل الصوت في Android، والذي يستند إلى قرارات التوجيه بشأن نشاط بث الصوت. تختلف هذه البنية عن النموذج السابق الذي كانت فيه حزمة بروتوكول البلوتوث تدير عمليات الربط. في ما يلي أدوار كل مكون في هذه البنية:

يبدأ تطبيق AHAL جلسة SCO ويعلّقها فقط في حال استيفاء الشروط التالية:

  • يتم ربط بث نشط بجهاز SCO.
  • تم ضبط وضع الصوت، ويتوفّر تصحيح لجهاز SCO.

يمنع إطار عمل الصوت جهاز A2DP من إجراء تصحيح متزامن عند استيفاء هذه المعايير المحدّدة. لم يعُد إطار عمل الصوت يرسل تغييرات حالة SCO أو عمليات تعليق A2DP إلى AHAL.

يتولّى إطار عمل الصوت إدارة SCO، لذا لم يعُد حزمة BT تستدعي عمليات ربط الصوت أو فصله. في حالات قطع اتصال SCO بشكل استباقي أو حدوث خطأ، يرسل حزمة بروتوكول البلوتوث إشعارًا إلى إطار عمل الصوت باستخدام AudioManager#onHfpAudioDisconnected.

الخطة

استخدِم المعلومات الواردة في هذا القسم لتقييم متطلبات التوافق والبنية التالية قبل تنفيذ عملية إعادة تصميم إدارة النطاق المحدود الإمكانات.

التوافق مع الأنظمة القديمة

لإتاحة استمرار إطار العمل في دعم الأجهزة التي قد تتلقّى تحديثات لنظام التشغيل بدون تعديل طبقات HAL الخاصة بالصوت أو طبقات HAL الخاصة بالصوت عبر البلوتوث، استخدِم سمة نظام للإشارة إلى أنّه يجب تفعيل إدارة SCO الجديدة. يتم الاحتفاظ بالمسار القديم لمدة تصل إلى ست سنوات في الحالات التي تكون فيها خاصية النظام غير مفعّلة أو كان إصدار HAL قديمًا.

إعداد جلسة HFP

يجب أن يستخدم تطبيق AHAL نوع جلسة ملف بدون لمس الجهاز (HFP) الجديد لبدء التشغيل أو إيقافه مؤقتًا، على غرار أنواع جلسات البلوتوث الأخرى. تتم إدارة حالة البث في النهاية باستخدام IBluetoothAudioProviders مختلفة، يتم تعدادها وإنشاؤها بواسطة فئة Factory استنادًا إلى المسارات المتاحة.

تستخدم حزمة بروتوكول البلوتوث مسارًا لتخفيف حمل الأجهزة كلما أمكن ذلك. يتم تحديد الترميز المفضّل أثناء التفاوض وفقًا لهذا الترتيب: يتم تفضيل أجهزة الترميز LC3 على برامج الترميز LC3، ثم أجهزة الترميز mSBC، ثم برامج الترميز mSBC، وأخيرًا يتم تفضيل أجهزة الترميز CVSD على برامج الترميز CVSD.

توضّح مخططات التسلسل التالية بالتفصيل التفاعلات بين AHAL وحزمة بروتوكول البلوتوث المطلوبة لتحديد حالة البث.

إجراء تخفيف حِمل الأجهزة

يوضّح الشكل 1 كيف يتكامل كل من AHAL وBT stack لإنشاء مسار بيانات مباشر للأجهزة من أجل الصوت عبر SCO:

hw-offload-procedure

الشكل 1: إجراء تخفيف حِمل الأجهزة

إجراء مسار بيانات البرنامج

يوضّح الشكل 2 عملية معالجة البيانات الصوتية التي تتطلّب معالجة برامج النظام:

sw-data-path

الشكل 2: إجراء مسار بيانات البرامج

إجراء إعادة التفاوض بشأن الترميز

عندما تتلقّى بوابة الصوت (AG) أمرًا جديدًا لبرنامج الترميز المتاح عبر البلوتوث (AT+BAC) ، تعيد بوابة الصوت بدء إجراء التفاوض بشأن برنامج الترميز. يوضّح الشكل 3 إجراء إعادة التفاوض بشأن الترميز:

codec-renego-process

الشكل 3 إجراء إعادة التفاوض بشأن الترميز

التأثير على HeadsetStateMachine

تظل آلة الحالة الخاصة بطبقة Java لسماعة الرأس (الممثلة بفئة HeadsetStateMachine) بدون تغيير إلى حد كبير، باستثناء الحالة AUDIO_CONNECTED التي يتم تشغيلها بواسطة أحداث حزمة برامج أصلية. ضمن طبقة Java، لم يعُد النظام يبدأ connectAudioNative أو disconnectAudioNative. بدلاً من ذلك، يستجيب النظام للتغييرات في حالة اتصال الصوت من الحزمة الأصلية. يتم بدء هذه التغييرات من خلال أوامر AHAL على IBluetoothAudioProvider أو IBluetoothAudioPort.

التنفيذ

لدمج عملية إعادة تصميم إدارة SCO، يجب تعديل عملية التواصل بين حزمة BT وإطار عمل الصوت.

اتّبِع الخطوات التالية لتنفيذ الميزة:

  1. إبلاغ إطار عمل الصوت بالتغييرات التي تطرأ على جهاز البلوتوث النشط للمساعدة في الإدارة السليمة لعمليات بدء وإيقاف SCO أثناء عمليات ربط أجهزة HFP والتعامل مع تغييرات الأجهزة النشطة استخدِم AudioManager.handleBluetoothActiveDeviceChanged(HfpInfo) لتقديم هذه المعلومات إلى إطار عمل الصوت.

    conn-hfp

    الشكل 4. ربط جهاز HFP

    يستخدم إطار عمل الصوت AudioManagerAudioDeviceCallback#onAudioDevicesAdded بدلاً من عمليات البث القديمة للإشارة إلى حالة جهاز الصوت.

  2. نفِّذ عملية التحكّم في بث AHAL باستخدام setCommunicationDevice(AudioDeviceInfodevice) كنقطة التحكّم الأساسية لبدء اتصال SCO.

    إذا عرضت HfpTransport::StartRequest القيمة BluetoothAudioCtrlAck::PENDING، يجب أن تعيد AHAL محاولة إرسال الطلب لأنّ آلة حالة HFP لم يتم إنشاؤها.

حالات الاستخدام

توضّح الأقسام التالية رحلات المستخدم الرئيسية النموذجية.

مسار مكالمة الاتصالات

يؤدي إعادة تصميم إدارة SCO إلى تغيير phoneStateChanged إلى دالة حظر. يؤدي هذا التعديل إلى انتظار شركة الاتصالات اكتمال تنفيذ phoneStateChanged ضمن طريقة BluetoothInCallService.onCallAdded() قبل استدعاء واجهة برمجة تطبيقات إطار عمل الصوت لبدء إنشاء SCO.

call-telecom

الشكل 5. الردّ على مكالمة أو بدء مكالمة من خلال شركة الاتصالات

مسار مكالمة عبر بروتوكول الإنترنت

يبدأ إطار عمل الصوت العملية من خلال استدعاء الطريقة BluetoothHeadset.startScoUsingVirtualVoiceCall. بعد أن يقدّم حزمة بروتوكول البلوتوث نتيجة إلى إطار عمل الصوت، يوجّه إطار العمل AHAL إلى تنفيذ startStream. يوضّح الشكل التالي هذا المسار:

call-voip

الشكل 6. الردّ على مكالمة أو بدؤها عبر بروتوكول نقل الصوت عبر الإنترنت (VOIP)

التعرّف على الصوت

بالنسبة إلى ميزة التعرّف على الصوت بدون لمس الجهاز (HF) وميزة التعرّف على الصوت التي يبدأها جهاز AG، يجب أن يطلب حزمة بروتوكول البلوتوث من إطار عمل الصوت فتح قناة SCO باستخدام AudioManager.setCommunicationDevice(). يوضّح الشكل التالي ذلك:

voice-recog

الشكل 7. بدء عملية التعرّف على الصوت

اتصال الصوت

تبدأ حزمة بروتوكول البلوتوث عملية ربط SCO من خلال طلب إطار عمل الصوت باستخدام AudioManager.setCommunicationDevice(AudioDeviceInfo) أثناء التعرّف على الصوت. إذا كانت هناك مكالمة نشطة، تطلب حزمة BT بدلاً من ذلك BluetoothInCallService#requestBluetoothAudio من حزمة الاتصالات.

توضّح الصورة التالية هذه العملية:

audio-conn

الشكل 8. اتصال الصوت

التحقق من صحة الإجراءات واختبارها

للتأكّد من أنّ الميزة مدمجة بشكل صحيح وتستوفي معايير الجودة، على الشركات المصنّعة للأجهزة إجراء الاختبارات التالية:

  • أداة CTS Verifier: استخدِم أداة CTS Verifier لإجراء اختبار تفاعلي لتوجيه الصوت أثناء المكالمات.
  • مجموعة اختبارات المورّدين (VTS): يمكنك التحقّق من صحة تفاعلات AHAL وBT AHAL باستخدام VTS.

المتطلبات

تخضع هذه الميزة للمتطلبات التالية:

  • AHAL: يتطلّب التنفيذ AHAL متوافقًا يتيح مسار إدارة SCO الذي تمت إعادة تصنيعه.