تعديلات على واجهة برمجة التطبيقات Audio routing API في الإصدار 14 من نظام التشغيل Android لتطبيقات الصوت على الإنترنت

قدّم الإصدار 14 من Android تعديلات على واجهات برمجة التطبيقات مصحوبة بتغييرات في تجربة المستخدم المتعلّقة بتوجيه الصوت في أجهزة Bluetooth LE Audio (LEA)، بما في ذلك سماعات الأذن المخصّصة لضعاف السمع. وقد أثّرت هذه التغييرات في طريقة إدارة تطبيقات VoIP لاختيار إخراج الصوت. يوفّر هذا المستند معلومات أساسية للمطوّرين من أجل تكييف تطبيقات بروتوكول الصوت على الإنترنت (VoIP) مع هذه التغييرات وضمان تجربة مستخدم سلسة.

تغيير في السلوك في Android 14

  • توجيه أجهزة LEA: يتم الآن تفعيل أجهزة LEA تلقائيًا على هواتف Pixel ونظام التشغيل AOSP. ومع ذلك، للتعرّف على أجهزة LEA واختيارها كإخراج صوتي بشكل نشط، يجب أن تستخدم التطبيقات واجهات برمجة التطبيقات الجديدة التي تم تقديمها في المستوى 31 لواجهة برمجة التطبيقات.
  • توجيه سماعة الأذن الطبية: في السابق، كان يتم ضبط الصوت تلقائيًا على استخدام سماعات الأذن الطبية، حتى إذا اختار المستخدم سماعة الأذن بشكل صريح. في نظام التشغيل Android 14، يتم الآن عرض سماعات السمع كأحد خيارات إخراج الصوت المتاحة، ما يتطلّب من المستخدم تحديدها بوضوح.

سبب التغيير

  • قبل الإصدار 12 من نظام التشغيل Android، لم تكن هناك واجهة برمجة تطبيقات لاستخدام سماعات الأذن الطبية بشكل صريح في المكالمات، ما يؤدي إلى ضبط الصوت تلقائيًا على سماعات الأذن الطبية عند توصيلها.
  • وهو ما جعل من الصعب على المستخدمين التبديل من سماعات الأذن الطبية إلى سماعات الأذن دون فصل سماعات الأذن الطبية.
  • تنطبق المشكلة نفسها على سماعات الرأس التي تعمل بتقنية Bluetooth LE Audio.

لمواجهة هذه التحديات، أدخل نظام التشغيل Android 14 تغييرات لمنح تطبيقات VoIP إمكانية التحكّم بشكل أكبر في توجيه الصوت وضمان سلوك متسق على مستوى ملحقات Bluetooth.

التغييرات الرئيسية في Android 14

  • واجهات برمجة تطبيقات عامة لاختيار المسارات: تم تقديم AudioManager.setCommunicationDevice في Android 12 للسماح للتطبيقات بتحديد مسارات الصوت، بما في ذلك سماعات الأذن الطبية وأجهزة LEA. ومع ذلك، في الإصدارَين Android 12 و13، لم تكن المعينات السمعية مرئية كأجهزة، مما قلّل من فائدة واجهة برمجة التطبيقات هذه.
  • مستوى ظهور المعينات السمعية: في نظام التشغيل Android 14، أصبحت المعينات السمعية تظهر الآن على أنّها أجهزة، ما يتيح للتطبيقات توفير عناصر واجهة مستخدم تتيح للمستخدمين اختيار مستوى الصوت المفضّل لديهم.
  • واجهات برمجة التطبيقات التي سيتم إيقافها نهائيًا: تم إيقاف العديد من واجهات برمجة التطبيقات المرتبطة بتوجيه الصوت نهائيًا في Android 14. على المطوّرين نقل البيانات إلى واجهات برمجة التطبيقات الجديدة التي تم تقديمها في المستوى 31 لواجهة برمجة التطبيقات لإدارة اختيار إخراج الصوت بفعالية.

الإجراءات المطلوبة من المطوّر

  • إجراء يُنصح به بشدة: نقل البيانات إلى مكتبة Telecom Jetpack إذا أمكن، يمكنك نقل تطبيق VoIP إلى مكتبة Telecom Jetpack لإدارة التوجيه الصوتي بسهولة.
  • استخدِم setCommunicationDevice() أو أحدث واجهات برمجة التطبيقات (الواردة أدناه) إذا لم يكن نقل البيانات ممكنًا.

واجهات برمجة التطبيقات المتوقّفة نهائيًا وبدائلها

تم إيقافها نهائيًا في Android 14 واجهات برمجة تطبيقات جديدة
AudioManager.isBluetoothScoOn() AudioManager.getCommunicationDevice()‎
AudioManager.isSpeakerphoneOn()‎
AudioManager.setSpeakerphoneOn()‎ AudioManager.setCommunicationDevice()
AudioManager.startBluetoothSco()‎
AudioManager.stopBluetoothSco() AudioManager.clearCommunicationDevice()‎
Connection.getCallAudioState() Jetpack:
CallControlScope.getAvailableEndpoints()
CallControlScope.getCurrentCallEndpoint()
CallControlScope#isMuted()

النظام الأساسي:
CallEventCallback.onAvailableCallEndpointsChanged()
CallEventCallback.onCallEndpointChanged()
CallEventCallback.onMuteStateChanged()
Connection.onCallAudioStateChanged()‎
Connection.requestBluetoothAudio()‎ Jetpack:
CallControlScope#requestEndpointChange()‎

النظام الأساسي:
CallControl#requestCallEndpointChange()‎
Connection.setAudioRoute()