تبديل مصدر الصوت

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

مبادئ تجربة المستخدم

  1. يجب أن يكون تبديل الاتصال سريعًا ويستند إلى إجراء المستخدم.
  2. يجب أن يكون التبديل بين الأجهزة واضحًا للمستخدمين، ما يتيح لهم التحكم/التراجع إذا كان التبديل غير مرغوب فيه.
  3. يجب أن يحترم التبديل خصوصية المستخدم.

الأدوار

أداة البحث عن تبديل الصوت: "أداة البحث" هي جهاز مصدر صوت (على سبيل المثال، للهاتف أو الجهاز اللوحي)، بحثًا عن سماعة رأس قريبة للاتصال بها عند اللزوم.

مقدِّم خدمة تبديل الصوت: يكون مقدّم الخدمة عادةً سماعة رأس تعلن عن وجود اتصال وحالة اتصال للباحثين لاتخاذ قرارات بشأن التبديل.

نظرة عامة على المتطلبات

لإتاحة التبديل الذكي، يجب أن يلتزم مقدّمو الخدمات بالمتطلبات التالية:

الاسم الوصف المتطلبات إلزامي؟
مسح الصفحة لقبول طلب اتصال جديد من "باحث" آخر، عند توفّر اتصال حالي.
بالنسبة إلى "مقدِّمي الخدمات الذين يستخدمون نقطة واحدة"، يجب اتّباع الخطوات التالية:
  • سيوقف جهاز المصدر الأصلي تشغيل الصوت مؤقتًا بشكل تلقائي عند قطع اتصال موفّر الخدمة.
بالنسبة إلى "مقدِّمي خدمة النقاط المتعددين":
  • في حال كان لا يزال هناك اتصال متاح، سيتم قبول طلب الاتصال.
  • في حال امتلاء معدل نقل بيانات الاتصال، يمكنك قطع الاتصال الذي تم استخدامه مؤخرًا (مثلاً، لم يتم رصد حدث صوتي لفترة طويلة)، ثم اقبل الطلب الوارد الجديد.
يجب توفير وضع فحص الصفحة بوقت الاستجابة المنخفض (يجب ألا يزيد الفاصل الزمني للفحص عن 640 ملي ثانية) لتحسين الأداء.
للتبديل بين عمر البطارية وتبديل الأداء، يمكن لموفّر الخدمة ضبط وضع فحص الصفحة التلقائي في معظم الحالات (وضع الطاقة المنخفضة، يجب ألا يزيد الفاصل الزمني للفحص عن 1280 ملي ثانية). غير أنه يجب استخدام وضع وقت الاستجابة البطيء في الحالات التالية:
  • تشغيل أول 30 ثانية من الطاقة
  • أول 30 ثانية من عدم الاتصال أو الترحيل
  • أول 30 ثانية من عدم نشاط الجهاز
إلزامي
سجلّ الاتصالات للرجوع إلى الاتصال السابق واستئناف التشغيل إن أمكن.
سيتم تفعيل عملية التبديل مرة أخرى عن طريق الاتصالات عبر واجهات برمجة تطبيقات Message Stream.
يجب تضمين الحدث الصوتي الذي يتم إيقافه مؤقتًا في السجلّ لاستئناف التشغيل إن أمكن.
يمكنك الحفاظ على سجلّ الاتصالات وتنفيذ واجهات برمجة تطبيقات Message Stream. إلزامي
حالة الاتصال بالنسبة إلى المستخدمين الذين يُجرون حكم تبديل الاتصال، تشمل حالة الاتصال ما يلي:
  • حالة الاتصال
  • نوع صوت الاتصال النشط
  • معلومات الحساب للاتصال النشط
  • الأجهزة المتصلة
تضمين حالة الاتصال في إعلان BLE وتدفق الرسائل إلزامي
تغيير في إمكانيات بيئة التشغيل يمكن تفعيل ميزة "تبديل مصدر الصوت" من خلال ترقية البرامج الثابتة على الموفِّر، وبالتالي يجب مزامنة الإمكانات بين Seeker ومقدِّم الخدمة في وقت التشغيل. تنفيذ واجهات برمجة تطبيقات تدفق الرسائل للوصول إلى إمكانات وقت التشغيل إلزامي
قواعد التبديل القابلة للضبط يمكنك السماح لتطبيق Seeker بضبط الأولوية بين طلبات البث الصوتي النشط الحالية وطلبات البث الصوتي الجديدة من خلال إعدادات المستخدم المفضّلة.
على سبيل المثال، قد يوفّر تطبيق Seeker إعدادات واجهة المستخدم للسماح للمستخدمين بتفعيل أو إيقاف التبديل التلقائي بين بث الوسائط والاتصال.
سيتم ضبط أداة البحث عن مسار الصوت وسيحصل على قاعدة التبديل من خلال "بث الرسائل".
موفّرو النقاط المتعددة فقط.
يمكنك تنفيذ واجهات برمجة التطبيقات Message Stream API لإتاحة إمكانية ضبط قواعد التبديل بين الأجهزة المتصلة.
اختياري
التبديل النشط بين الأجهزة يمكنك السماح لأداة البحث عن مفتاح تبديل الصوت بمحاكاة تبديل مصدر الصوت بين الأجهزة المتصلة.
على جانب "أداة البحث عن مفتاح تبديل الصوت"، قد تكون هناك واجهة مستخدم تتيح للمستخدمين التبديل بسهولة بين الأجهزة المتصلة.
بالنسبة إلى مقدِّمي خدمة النقاط المتعددين فقط.
يمكنك تنفيذ واجهات برمجة التطبيقات Message Stream API لأداة البحث عن تبديل الصوت لتحديد مصدر الصوت النشط بين الأجهزة المتصلة.
إلزامي
إشعار تبديل النقاط المتعددة السماح لأداة البحث عن مفتاح تبديل الصوت بعرض إشعار التبديل. يمكن لموفّري النقاط المتعددين فقط.
تنفيذ واجهات برمجة تطبيقات Message Stream لإرسال إشعار إلى المستخدمين الذين يبحثون عن أجهزة تبديل الصوت المتصلة عندما يتم التبديل بين نقاط متعددة.
إلزامي

حمولة الإعلانات

على موفّر الخدمة تضمين حالة الاتصال الحالية في الإعلان التي تستند إلى بيانات حسابات "الإقران السريع" الموضَّحة في الإعلانات: عندما لا تكون قابلة للاكتشاف.

تجدر الإشارة إلى أنّ إصدار الجدول 4.2 هو 0x1.

حقل حالة الاتصال

ثُمانِي واحد نوع البيانات الوصف القيمة إلزامي؟
0 uint8 طول الحقل ونوعه
0bLLLLTTTT
  • L = طول حالة الاتصال بالبايت
  • T = النوع
0bLLLL0101
  • المدة: تختلف
  • النوع = 0b0101
إلزامي
1 uint8 حالة الاتصال
0bHAFRSSSS
  • H = عند اكتشاف الرأس
  • A = توفر الاتصال
  • F = وضع التركيز
  • R = تمت إعادة الاتصال تلقائيًا
  • S = حالة الاتصال
0bHAFRSSSS
إلزامي
2 uint8 بيانات مخصصة
تتضمن حاليًا نوع المحتوى الذي يُستخدم فقط لوصف استخدام البث الصوتي الحالي. سيرسله الطالب إلى مقدّم الخدمة.
يتم إرسال القيمة من "الباحث" عن البث النشط الحالي إلى "مقدِّم الخدمة" من خلال بث الرسائل. 0 إذا لم يكن البث النشط الحالي من Seeker. إلزامي
3 - var صورة نقطية للأجهزة المتصلة
صورة نقطية لعرض الأجهزة المتصلة حاليًا بمقدم الخدمة. يتم ترتيب جميع الأجهزة المتصلة بالترتيب، بوحدة بت واحدة لجهاز واحد مرتبط. سيعتمد الطول على عدد الأجهزة المرتبطة بموفّر الخدمة.
يتم ضبط البت المرتبط على 1 إذا كان الجهاز متصلاً حاليًا بمقدِّم الخدمة، على 0 في الحالات الأخرى.
يمكنك الاطّلاع على الصورة النقطية للأجهزة المتصلة للحصول على التفاصيل.
اختياري

الجدول 4.1: البيانات الأولية لحقل حالة الاتصال

علامات الاتصال
  • 0bH = عند اكتشاف الرأس

    • 1، فوق رأسك الآن
    • 0، بخلاف ذلك، ليس على الرأس أو لا يوجد جهاز استشعار OHD
  • 0bA = توفر الاتصال

    • 1، يتوفر اتصال
    • 0، وبخلاف ذلك
  • 0bF = وضع التركيز

    • 1، في وضع التركيز الآن، لا يُسمح بتبديل الاتصال للوسائط الاستخدام، أي عدم إمكانية التبديل من A2DP إلى A2DP
    • 0، وبخلاف ذلك
  • 0bR = تمت إعادة الاتصال تلقائيًا

    • 1، إذا تمت إعادة توصيل الاتصال الحالي تلقائيًا بواسطة الموفّر، ما يعني أنه غير متصل من قِبل المستخدمين (بالنسبة إلى النقاط المتعددة، إذا كانت إحدى يتم إعادة توصيل الاتصالات تلقائيًا، يجب تعيينها على 1)
    • 0، وبخلاف ذلك
حالة الاتصال
  • 0x0: لا يتوفر اتصال
  • 0x1: ترقيم الصفحات
  • 0x2: متصل ولكن لا يتم نقل البيانات
  • 0x3: نقل البيانات غير الصوتية (فقط عند التبديل، وإذا لم يكن ذلك ممكنًا، باستخدام 0xF)
  • 0x4: البث A2DP، AVRCP غير سارٍ
  • 0x5: البث عبر A2DP وتشغيل AVRCP
  • 0x6: البث باستخدام HFP (مكالمة الهاتف أو بروتوكول الصوت على الإنترنت)، بما في ذلك نغمة الرنين المضمَّنة وغير المضمنة
  • 0x7: صوت LE Audio - بث الوسائط بدون تحكّم
  • 0x8: صوت LE Audio - بث الوسائط مع إمكانية التحكّم
  • 0x9: ميزة LE Audio - بث المكالمات
  • 0xA: LE audio - بث
  • 0xF: إيقاف تبديل الاتصال مؤقتًا (مثل تحديث البرامج الثابتة)
نوع سياق LE Audio وحالة الاتصال

اقتراح أن يتعامل موفِّر LE Audio مع جميع أنواع السياقات المحدّدة في الأرقام المخصّصة 6.12.3 (ما لم يكن المزود بشكل صريح لا يدعم نوع سياق معينًا) والخريطة نوع السياق لحالة الاتصال على النحو التالي.

  • المحادثات: 0x9
  • الوسائط: 0x8
  • اللعبة: 0x7
  • إرشادات: 0x7
  • المساعدون الصوتيون: 0x9
  • البث المباشر: 0x9
  • المؤثرات الصوتية: 0×2
  • الإشعارات: 0x2
  • نغمة الرنين: 0x9
  • التنبيهات: 0x7
  • إنذار الطوارئ: 0x9

بالنسبة إلى السيناريو المختلط لاستخدام LE Audio مثل تشغيل الوسائط أثناء اتصال، يستخدم المزود حالة الاتصال ذات الأولوية القصوى، أي استخدام 0x9 (اتصال) للسيناريو أعلاه بدلاً من 0x8 (للوسائط).

الصورة النقطية للأجهزة المتصلة

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

لاحظ أن هذه الصورة النقطية مجهولة الهوية، ولا يستطيع الباحث معرفة البيانات الأخرى ترتبط هذه الأجهزة بمقدِّم الخدمة. على سبيل المثال، خذ 5 أجهزة مرتبطة:

  • 0: كمبيوتر محمول (0bx0000000)
  • 1: phoneA (0b0x000000)
  • 2: phoneB (0b00x00000)
  • 3: جهاز لوحي (0b000x0000)
  • 4: تلفزيون (0b0000x000)

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

إعلان عشوائي قابل للحل

لتجنّب تتبُّع خصوصية المستخدم واحترامها، على مقدّم الخدمة تدوير تشفير الحقل من خلال مفتاح الحساب باستخدام AES-CTR:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

أين

  1. المفتاح مشتق من مفتاح الحساب قيد الاستخدام، الذي المحدد في القسم التالي.

    • يتم إنشاء المفتاح بواسطة دالة HKDF، IETF RFC 5869، باستخدام خوارزمية SHA-256 دالة التجزئة.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • موفّر الخدمة مفتاح الحساب الأصلي هنا، أي البايت الأول من المفتاح هو 0×04، ولا يتم تضمينه في نمط الاستخدام.

  2. بينما يكون المتجه الأولي IV (المتجه الأولي) هو مقدار 2 بايت من البيانات الأساسية للحساب مع وجود صفر المساحة المتروكة، أي أن IV هي concat(salt, 14-bytes).

  3. يتم تحديد البيانات الأولية لحالة الاتصال في الجدول 4.1، إذا كانت في حالة الاتصال، يجب إعادة إنشاء الملح وتجميع RPA الإطار الزمني نفسه للإعلان

يؤدي هذا إلى تدوير حقل حالة الاتصال المشفر في نفس الوقت الذي تعمل فيه يتم تدوير البيانات الأساسية للحساب.

سيتم تنظيم إعلان BLE على النحو التالي:

ثُمانِي واحد نوع البيانات الوصف القيمة إلزامي؟
0 uint8 الإصدار والعلامات 0x10 إلزامي
1 - t البيانات الأساسية للحساب تختلف إلزامي
t+1 - s بيانات البطارية تختلف اختياري
s+1 - var البيانات العشوائية القابلة للتحليل تختلف إلزامي في حال لم تكن قائمة مفاتيح الحساب فارغة،
وإلا يتم استبعادها.

الجدول 4.2: إعلان BLE باستخدام بيانات عشوائية قابلة للتحليل

تحتوي البيانات العشوائية القابلة للتحليل على:

ثُمانِي واحد نوع البيانات الوصف القيمة إلزامي؟
0 uint8 طول الحقل ونوعه
0bLLLLTTTT
  • L = طول البيانات المشفرة
  • T = النوع
0bLLLL0110
  • المدة: تختلف
  • النوع = 0b0110
إلزامي
1 - var البيانات المشفّرة تختلف إلزامي

الجدول 4.2.1: البيانات العشوائية القابلة للتحليل

كمثال، إذا كانت البيانات العشوائية القابلة للتحليل تحتوي على اتصال مشفّر الحالة، تكون النتيجة التي تم فك تشفيرها هي حقل حالة الربط.

لمنع التلاعب، يجب إدخال تعديلات طفيفة على بيانات مفتاح الحساب أعلاه. عند تضمين البيانات العشوائية القابلة للتحليل في الإعلان. في العادة، عندما عند إنشاء فلتر مفتاح الحساب، يتم إنشاء قيمة V من خلال جمع حسابات عامل تصفية رئيسي مع قيمة عشوائية. بدلاً من ذلك، عندما يتم أيضًا التعامل مع البيانات العشوائية المعلن عنه، يجب إنشاء القيمة V على النحو التالي:

 V = concat(account_key, salt, random_resolvable_data)

إذا تم الإعلان عن كل من بيانات البطارية والبيانات العشوائية القابلة للتحليل، يجب على V سيتم إنشاؤها على النحو التالي:

 V = concat(account_key, salt, battery_data, random_resolvable_data)

مفتاح الحساب قيد الاستخدام

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

قبل احتساب فلتر مفتاح الحساب، على موفّر الخدمة تعديل الفلتر الأول بايت من مفاتيح الحساب لتضمين واحد مما يلي عند استخدام أنماط الاستخدام:

  1. 0b00000100
    مفتاح الحساب هذا غير مُستخدَم.
    هذا هو الخيار التلقائي (يمكنك الاطّلاع على مفتاح الحساب).
  2. 0b00000101
    مفتاح الحساب هذا هو أحدث مفتاح حساب تم استخدامه.
    تم تشفير حقل حالة الاتصال باستخدام مفتاح الحساب هذا. لا يوجد للحساب عن حالة الاتصال الحالية، فقد يعني ذلك عدم الأجهزة المتصلة أو الجهاز المتصل ليس من أدوات البحث عن تبديل الصوت.
  3. 0b00000110
    مفتاح الحساب هذا هو مفتاح الحساب المستخدَم.
    تم تشفير حقل حالة الاتصال باستخدام مفتاح الحساب هذا، الجهاز المتصل مرتبط بمفتاح الحساب هذا.

رسم بياني لحمولة بيانات تبديل مصدر الصوت

ويوضّح الشكل التالي الرسم التخطيطي لحمولة تبديل الصوت.

الرسائل

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

اسم مجموعة الرسائل القيمة
تبديل الصوت 0×07

يتم تضمين تفاصيل إضافية عن كل رمز رسالة في الأقسام التالية.

اسم رمز الرسالة القيمة اتصال متعدد النقاط فقط المرسل المجيب تشفير التحكم في الوصول للوسائط الإقرار
إمكانية تبديل مصدر الصوت 0x10 N كلاهما كلاهما، عبر الرمز 0x11 N لا N
إمكانية إرسال الإشعارات المتعلقة بتبديل مصدر الصوت 0×11 N كلاهما كلاهما N نعم نعم
ضبط حالة النقاط المتعددة 0×12 نعم باحث موفِّر الخدمة N نعم نعم
ضبط الإعدادات المفضّلة للتبديل 0x20 نعم باحث موفِّر الخدمة N نعم نعم
الحصول على خيار التبديل 0×21 نعم باحث مقدّم الخدمة، عبر الرمز 0x22 N لا N
تفضيل التبديل بين الإشعارات 0×22 نعم موفِّر الخدمة باحث N لا N
تبديل مصدر الصوت النشط(إلى جهاز متصل) 0x30 نعم باحث موفِّر الخدمة N نعم نعم
التبديل إلى الوضع السابق 0x31 N باحث موفِّر الخدمة N نعم نعم
الإشعار بحدث تبديل النقاط 0x32 نعم موفِّر الخدمة باحث N لا N
معرفة حالة الاتصال 0x33 نعم باحث مقدّم الخدمة، عبر الرمز 0x34 N لا N
إرسال إشعار بحالة الاتصال 0x34 نعم موفِّر الخدمة باحث نعم لا N
إشعار الاتصال الذي بدأه مفتاح "تبديل مصدر الصوت" 0x40 N باحث موفِّر الخدمة N نعم نعم
الإشارة إلى مفتاح الحساب المستخدَم 0x41 N باحث موفِّر الخدمة N نعم نعم
إرسال بيانات مخصّصة 0×42 N باحث موفِّر الخدمة N نعم نعم
ضبط هدف نقطة الاتصال 0×43 نعم باحث موفِّر الخدمة N نعم نعم

الجدول 4.3: رسائل تبديل الصوت

عنوان MAC لرسائل تبديل الصوت

لإتاحة مصادقة الرسائل، يمكن لجميع رسائل تبديل الصوت مع يجب تقديم رمز مصادقة الرسالة بعد إرسال البيانات من "سيكير" إلى "مقدِّم الخدمة". فعندما تم استلام رسالة تتضمن MAC، فينبغي أن يتم الإقرار بها حتى يتمكن Searchker ما إذا كان موفّر الخدمة قد تفاعل مع الرسالة أم لا.

إذا نجحت مصادقة الرسالة، على موفّر إرسال ACK الرسالة:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 إقرار 0xFF
1 uint8 الإقرار 0x01
2 - 3 uint16 طول البيانات الإضافية تختلف
4 uint8 تبديل الصوت 0×07
5 uint8 رمز رسالة تبديل مصدر الصوت تختلف
من 6 إلى ثانية البيانات الإضافية تختلف

وفي حال تعذُّر ذلك، يرسل مزوِّد الخدمة NAK للرسالة:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 إقرار 0xFF
1 uint8 NAK 0x02
2 - 3 uint16 طول البيانات الإضافية 0×0003
4 uint8 سبب الخطأ تختلف
5 uint8 تبديل الصوت 0×07
6 uint8 رمز رسالة تبديل مصدر الصوت تختلف

لاحظ أنه إذا كان المزود هو المرسل، فلا يكون MAC مطلوبًا.

الحصول على إمكانية تبديل مصدر الصوت

بإمكان كل من مزوّد ميزة "تبديل مصدر الصوت" وأداة Seeker التحقّق مما إذا كانت ميزة "الإقران السريع" المتصلة يتيح الباحث/الموفر إمكانية تبديل الصوت أو لا يتيح استخدام الرسالة التالية:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 الحصول على إمكانية تبديل مصدر الصوت 0x10
2 - 3 uint16 طول البيانات الإضافية 0

الجدول 4.3.1.0: الحصول على إمكانية تبديل مصدر الصوت

إمكانية إرسال الإشعارات الخاصة بتبديل مصدر الصوت

عند تلقّي رسالة يمكنك تفعيل ميزة تبديل مصدر الصوت الرمز، فإن مصدر/طالب تبديل الصوت سيستجيب بأي مما يلي العلامات:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 إمكانية إرسال الإشعارات الخاصة بتبديل مصدر الصوت 0×11
2 - 3 uint16 طول البيانات الإضافية 20 إذا تم إرسال هذا من قِبل Seeker
4 إذا أرسله موفّر المحتوى.
من 4 إلى 5 uint16 رمز إصدار ميزة "تبديل مصدر الصوت" تعني القيمة غير الصفرية إمكانية تبديل الصوت. رمز الإصدار الحالي (مع تحسين الأمان) هو 0x0102.
تعني 0x0000 أو ما مِن استجابة خلال ثانية واحدة أنّ ميزة "تبديل مصدر الصوت" غير متاحة على هذا الجهاز.
من 6 إلى 7 أعلام علامات الموفّر التي تتيح إمكانية تبديل مصدر الصوت
إذا تم إرسال هذا العنصر من خلال Seeker، يجب تجاهل وحدتَي البايت هاتين.
تختلف
الاطّلاع على علامات إمكانية تبديل الصوت
من 8 إلى 15 رسالة غير مطلوبة
مطلوبة فقط عندما يرسل "الباحث" هذه الرسالة
تختلف
من 16 إلى 23 رمز مصادقة الرسالة
مطلوب فقط عندما يرسل Seeker هذا الرمز
تختلف

الجدول 4.3.1.1: إمكانية إرسال الإشعارات الخاصة بتبديل مصدر الصوت

علامات إمكانية تبديل مصدر الصوت
  1. Bit 0 (ثُماني بتات، MSB): حالة تبديل الصوت

    • 1، إذا كانت حالة "تبديل مصدر الصوت" مفعَّلة
    • 0، وبخلاف ذلك
  2. بت 1: إمكانية تكوين النقاط المتعددة

    • 1، إذا كان الجهاز متوافقًا مع ميزة النقاط المتعددة ويمكن تبديله بين وضع التشغيل غير مفعّل
    • 0، بخلاف ذلك (لا تتوافق النقاط المتعددة أو النقاط المتعددة قيد التشغيل دائمًا)
  3. بت 2: حالة حالية متعددة النقاط

    • 1، إذا كانت النقاط المتعددة مفعَّلة
    • 0، وبخلاف ذلك
  4. Bit 3: اكتشاف الرأس

    • 1، إذا كان هذا الجهاز متوافقًا مع ميزة "الرصد على الرأس" (حتى إذا كانت ميزة "الرصد على الرأس" غير مفعّلة الآن)
    • 0، وبخلاف ذلك
  5. بت 4: الوضع الحالي للاكتشاف أثناء الرأس

    • 1، في حال تفعيل ميزة "رصد حركة الرأس"
    • 0، بخلاف ذلك (لا يتوافق مع الاكتشاف على الرأس أو غير مفعَّل)
  6. جميع وحدات البت الأخرى محجوزة، الإعداد التلقائي 0.

ضبط حالة النقاط المتعددة

يمكن أن نوفّر للمستخدمين خيار تفعيل/إيقاف خيار "التحكّم بجهاز تبديل الصوت". بوظيفة متعددة النقاط. سيقوم الباحث بتعيين حالة النقاط المتعددة على مزوِّد الخدمة باستخدام الرسالة التالية:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 ضبط حالة النقاط المتعددة 0×12
2 - 3 uint16 طول البيانات الإضافية 17
4 uint8 حالة متعددة النقاط 0: إيقاف النقاط المتعددة
1: تفعيل النقاط المتعددة
من 5 إلى 12 رسالة رقم تختلف
من 13 إلى 20 رمز مصادقة الرسائل تختلف

الجدول 4.3.1.2: ضبط حالة النقاط المتعددة

ضبط الإعدادات المفضّلة للتبديل

يمكن للباحثين عن تبديل الصوت تعديل الإعدادات المفضّلة للتبديل بين النقاط المتعددة وضبطها إلى موفّر الخدمة باستخدام الرسالة التالية:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 ضبط الإعدادات المفضّلة للتبديل 0x20
2 - 3 uint16 طول البيانات الإضافية 18
4 أعلام جارٍ تبديل الإعدادات المفضّلة يختلف
الاطّلاع على علامة تفضيل التبديل بين النقاط المتعددة
5 إعدادات التبديل المتقدمة
هذا البايت محجوز، القيمة التلقائية هي 0
تختلف
من 6 إلى 13 رسالة رقم تختلف
من 14 إلى 21 عامًا رمز مصادقة الرسائل تختلف

الجدول 4.3.2.0: ضبط الإعدادات المفضّلة للتبديل

علامة تفضيل التبديل بين نقاط متعددة
  • Bit 0 (MSB): A2DP مقابل A2DP (القيمة التلقائية 0)
  • بت 1: HFP مقابل HFP (الافتراضي 0)
  • بت 2: A2DP في مقابل HFP (الافتراضي 0)
  • بت 3: HFP مقابل A2DP (الافتراضي 1)
  • البت 4 - 7: محجوزة
  • يمثل أعلاه "طلب ملف شخصي جديد" مقابل "الملف الشخصي النشط الحالي"
    • 0 لعدم التبديل
    • 1 للتبديل

الحصول على تفضيل التبديل

يمكن للباحثين عن مُبدل الصوت الاستعلام عن تفضيل التبديل بين النقاط المتعددة من مزوِّد الخدمة باستخدام الرسالة التالية:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 الحصول على إعدادات التبديل 0×21
2 - 3 uint16 طول البيانات الإضافية 0

الجدول 4.3.2.1: الحصول على الإعدادات المفضّلة للتبديل

الخيار المفضّل للتبديل بين الإشعارات

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 الخيار المفضّل للتبديل بين الإشعارات 0×22
2 - 3 uint16 طول البيانات الإضافية 2
4 أعلام تبديل علامات الإعدادات المفضّلة يختلف
الاطّلاع على علامة تفضيل التبديل بين النقاط المتعددة
5 إعدادات التبديل المتقدمة
هذا البايت محجوز، القيمة التلقائية يجب أن تكون 0
تختلف

الجدول 4.3.2.2: تفضيل التبديل بين الإشعارات

تبديل مصدر الصوت النشط (إلى جهاز متصل)

يمكن للباحثين عن تبديل مصدر الصوت أن يطلب من مزوِّد النقاط المتعدّدة التبديل إلى جهاز مصدر الصوت بين الأجهزة المتصلة باستخدام الرسالة أدناه:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 تبديل مصدر الصوت النشط (إلى جهاز متصل) 0x30
2 - 3 uint16 طول البيانات الإضافية 17
4 أعلام تبديل علامات أحداث مصدر الصوت النشط يختلف
الاطّلاع على تبديل حدث مصدر الصوت النشط
من 5 إلى 12 رسالة رقم تختلف
من 13 إلى 20 رمز مصادقة الرسائل تختلف

الجدول 4.3.3.0: تبديل مصدر الصوت النشط (إلى جهاز متصل)

تبديل حدث مصدر الصوت النشط
  • Bit 0 (MSB): 1 مفتاح تبديل لهذا الجهاز، 0 مفتاح تبديل إلى جهاز ثانٍ متصل.
  • البت 1: 1 استئناف التشغيل عند التبديل إلى الجهاز بعد التبديل، 0 في الحالات الأخرى. يعني استئناف التشغيل أن مقدّم الخدمة يرسل إشعار PLAY إلى المستخدم. من خلال ملف AVRCP الشخصي. إذا لم تكن الحالة السابقة (قبل التبديل) PLAY، يجب أن يتجاهل موفّر الخدمة هذه العلامة.
  • البت 2: 1 رفض SCO في الجهاز الذي تم تبديله، 0 بخلاف ذلك
  • بت 3: 1 فصل البلوتوث على جهاز التبديل، 0 في الحالات الأخرى.
  • البت 4 - 7: محجوزة.

قد لا يعرف الباحثون عن تبديل الصوت دائمًا حالتهم بشكل صحيح، لذا من الممكن ليتلقّى موفّر الخدمة "مفتاح التبديل إلى هذا الجهاز" الرسالة عندما يكون الباحث الجهاز النشط بالفعل. في هذه الحالة، لعرض واجهة المستخدم الصحيحة على Seeker، يمكن لموفّر الخدمة إرسال NAK مع سبب الخطأ، 0x4 - إجراء جهاز مكرّر.

إذا كان موفّر خدمة LE Audio لديه أكثر من عضو واحد، على موفّر الخدمة يوقف جميع الأعضاء من Seeker، وإلا فإن حزمة البلوتوث في سيعيد "الباحث" الاتصال بـ "مقدِّم الخدمة".

التبديل مرة أخرى (إلى جهاز غير متصل)

إذا كان تبديل الاتصال غير مرغوب فيه، يمكن للمستخدمين العودة عن التبديل، في سيناريوهات معينة، يكون من المنطقي استعادة اتصال الصوت لتقليل اضطرابك. وسيستخدم "الباحث" الرسالة أدناه لتفعيل التبديل مرة أخرى:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 التبديل مرة أخرى (إلى جهاز غير متصل) 0x31
2 - 3 uint16 طول البيانات الإضافية 17
4 uint8 تبديل الحدث مرة أخرى يختلف
0x01: الرجوع
0x02: الرجوع واستئناف التشغيل
من 5 إلى 12 رسالة رقم تختلف
من 13 إلى 20 رمز مصادقة الرسائل تختلف

الجدول 4.3.3.1: التبديل مرة أخرى (إلى جهاز غير متصل)

بالنسبة إلى "مقدِّمي الخدمات الذين يستخدمون نقاطًا متعددة"، يحقّ للموفّر إزالة الاتصال بجهاز مصدر صوت واحد وإيقاف جلسة الصوت مؤقتًا على الجهاز الآخر مصدر الصوت على سبيل المثال، لنفترض أن سماعة الرأس متعددة النقاط متصلة وجهاز لوحي آخر متوافق مع جهاز تبديل مصدر الصوت. يشاهد المستخدم فيديو على الجهاز اللوحي عند وجود مكالمة واردة على هواتفهم. سيتم تشغيل الهاتف مفتاح اتصال في سماعة الرأس، والذي يحتاج إلى إسقاط الجهاز الثالث للاتصال بالهاتف، مع إيقاف الوسائط مؤقتًا أيضًا على الجهاز اللوحي للحصول على نغمة الرنين من الهاتف. إذا رفض المستخدم قد يطلب الهاتف من سماعة الرأس "التبديل مرة أخرى واستئناف التشغيل". عند تلقّي هذا الطلب، يجب إعادة توصيل سماعة الرأس بالجهاز الثالث استئناف تشغيل الفيديو المتوقف مؤقتًا على الجهاز اللوحي.

إرسال إشعار بحدث تبديل النقاط المتعدد

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

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 إرسال إشعارات بحدث مفاتيح تحكّم متعدّدة النقاط
يجب أن يرسل موفّر المحتوى البيانات عند كل عملية تبديل، بما فيها أداة البحث عن مفتاح تحكّم غير بالصوت، وأداة البحث عن مفتاح تحكّم غير صوتي، وأداة البحث عن مبدِّل الصوت، وأداة البحث عن مبدِّل الصوت
0x32
2 - 3 uint16 طول البيانات الإضافية تختلف
4 uint8 تبديل السبب
يجب تحديد هذه القيمة استنادًا إلى حالة الاتصال. بالنسبة إلى حالات استخدام LE Audio، قد يكون من المفيد النظر في الربط بين نوع سياق LE Audio وحالة الاتصال. على سبيل المثال، حالة الاتصال المتوافقة مع "المساعد الصوتي" هي 0x9(LE audio - بث المكالمات). ولذلك، يجب أن يكون سبب التبديل الذي تبدأه "المساعد الصوتي" هو 0x02.
يختلف
0x00: بيانات غير محدَّدة
0x01: وسائط (مثل بث وسائط A2DP وبث وسائط LEA)
0x02: اتصال (مثل البث باستخدام HFP وبث مكالمات LEA)
5 uint8 الجهاز المستهدف يختلف
0x01: هذا الجهاز
0x02: جهاز آخر متصل
6 - n utf8 اسم الجهاز المستهدف
إذا كان الجهاز المستهدف هو "أداة البحث عن مصدر الصوت"، باستخدام الاسم الذي تم إرساله إليه، أو باستخدام اسم BT، إذا لم يكن ذلك منطبقًا، باستخدام آخر 2 بايت من عنوانه
تختلف

الجدول 4.3.3.2: إرسال إشعار بحدث تبديل النقاط المتعدد

التعرُّف على حالة الاتصال

يمكن للباحث الحصول على حالة الاتصال الحالية من الموفِّر:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 التعرُّف على حالة الاتصال 0x33
2 - 3 uint16 طول البيانات الإضافية 0

الجدول 4.3.3.3: التعرُّف على حالة الربط

عند استلام هذه الرسالة، على موفّر الخدمة تقديم رمز الرسالة. 0x34، إشعار بحالة الاتصال

إرسال إشعار بحالة الاتصال

على النحو المحدّد في حمولة الإعلانات في BLE، مقدمي الخدمة الذين يستخدمون نقاطًا متعددة، في حال تغيرت حالة الاتصال، باستثناء تغيير حزمة إعلانية، على موفّر الخدمة أيضًا إعلام الباحثين المتصلين تستخدم مفتاح الحساب نفسه بشأن التغيير. في حال كان موفّر الخدمة متصلاً باستخدام "أداة البحث عن مفاتيح تبديل الصوت" وأداة للبحث عن مفاتيح تحكّم غير الصوت، في حال استخدام مفتاح التحكّم مفعّل، على مقدّم الخدمة أيضًا إشعار الصوت المتصل. قم بتبديل Seeker حول حالة الاتصال (باستخدام مفتاح حساب Seeker).

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 إرسال إشعار بحالة الاتصال 0x34
2 - 3 uint16 طول البيانات الإضافية تختلف
4 uint8 علامة الجهاز النشط يختلف
0x00: يكون "الباحث" هذا سلبيًا ويستخدم الجهاز النشط مفتاح الحساب نفسه
0x01: هذا "الباحث" هو الجهاز النشط
0x02: هذا "الباحث" (Seeker) سلبي، والجهاز النشط لا يستخدم مفتاح تبديل الصوت.
5 - n حالة الاتصال المشفَّر تختلف
n+1 - ن+8 رسالة رقم تختلف

الجدول 4.3.3.4: الإشعار بحالة الاتصال

رسالة حالة اتصال مشفّرة

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

حيث:

إشعار ببدء الاتصال عبر ميزة "تبديل مصدر الصوت"

قد يحتاج مقدّمو خدمة تبديل الصوت إلى معرفة ما إذا كان خيار تبديل الاتصال مفعَّلاً من خلال مفتاح تحكّم بالصوت للحصول على تفاعلات مختلفة، مثلاً إيقاف الرموز الصوتية في الصوت وتبديل الأحداث. يرسل الباحث رسالة لإبلاغ موفّر المحتوى بأنّ هذا كان اتصالًا بدأه مفتاح تبديل الصوت.

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 إشعار ببدء الاتصال عبر ميزة "تبديل مصدر الصوت" 0x40
2 - 3 uint16 طول البيانات الإضافية 17
4 uint8 مؤشر الاتصال الذي بدأه مفتاح تبديل الصوت يختلف
0: لم يتم تشغيل هذا الاتصال عن طريق مفتاح تبديل الصوت
1: كان هذا اتصالاً عبر مفتاح تبديل الصوت.
من 5 إلى 12 رسالة رقم تختلف
من 13 إلى 20 رمز مصادقة الرسائل تختلف

الجدول 4.3.4.0: إشعار بدء الاتصال عبر ميزة "تبديل مصدر الصوت"

الإشارة إلى مفتاح الحساب المستخدَم

إذا كانت مفاتيح حسابات متعددة على Seeker (مثل مستخدمين متعددين) مرتبطة المستخدم، فسيستخدم الباحث الرسالة أدناه للإشارة إلى الحساب الذي قيد الاستخدام.

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 الإشارة إلى مفتاح الحساب المستخدَم 0x41
2 - 3 uint16 طول البيانات الإضافية 22
من 4 إلى 9 utf8 سلسلة قيد الاستخدام UTF8 ("قيد الاستخدام")
من 10 إلى 17 رسالة رقم تختلف
بين 18 و25 رمز مصادقة الرسائل تختلف

الجدول 4.3.4.1: الإشارة إلى استخدام مفتاح الحساب

عند تلقّي هذه الرسالة، يمكن لمقدِّم الخدمة معرفة مفتاح الحساب المستخدَم. عن طريق التحقق من رمز مصادقة الرسالة.

إرسال بيانات مخصّصة

يمكن لأداة البحث عن مفتاح التحكّم بالصوت تغليف المعلومات (مثل الصوت الاستخدام) للبث الصوتي في بايت البيانات المخصصة، وإرساله إلى المزود باستخدام الرسالة أدناه:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 إرسال بيانات مخصّصة 0×42
2 - 3 uint16 طول البيانات الإضافية 17
4 uint8 البيانات المخصّصة تختلف
من 5 إلى 12 رسالة رقم تختلف
من 13 إلى 20 رمز مصادقة الرسائل تختلف

الجدول 4.3.4.2: إرسال بيانات مخصّصة

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

ضبط نقطة الاتصال المستهدفة

في سماعات الرأس المتعددة النقاط، إذا كان الاتصال المفضل المراد انقطاعه ليس الأقل استخدامًا مؤخرًا، يمكن للباحثين عن مبدِّل الصوت إطلاع موفّر المحتوى على الجهاز للإفلات باستخدام الرسالة أدناه:

ثُمانِي واحد نوع البيانات الوصف القيمة
0 uint8 تبديل الصوت 0×07
1 uint8 ضبط نقطة الاتصال المستهدفة 0×43
2 - 3 uint16 طول البيانات الإضافية 17
4 uint8 سيتم تجاهل الجهاز المتصل يختلف
1: هذا الجهاز
من 5 إلى 12 رسالة رقم تختلف
من 13 إلى 20 رمز مصادقة الرسائل تختلف

الجدول 4.3.4.3: ضبط هدف انقطاع الاتصال

تطبيق الملفات المرجعية

اطّلِع على مكتبة حزمة تطوير البرامج (SDK) المضمَّنة في الأجهزة المجاورة لمعرفة كيفية تنفيذ المرجع.