ब्लूटूथ LE का उपयोग करके हियरिंग एड ऑडियो सपोर्ट

हियरिंग एड डिवाइस (HA) ब्लूटूथ लो एनर्जी (BLE) पर कनेक्शन-उन्मुख L2CAP चैनल (CoC) का उपयोग करके एंड्रॉइड-संचालित मोबाइल उपकरणों पर पहुंच में सुधार कर सकता है। सीओसी पैकेट हानि की उपस्थिति में भी, ऑडियो के स्थिर प्रवाह को बनाए रखने के लिए कई ऑडियो पैकेटों के एक लोचदार बफर का उपयोग करता है। यह बफ़र विलंबता की कीमत पर श्रवण सहायता उपकरणों के लिए ऑडियो गुणवत्ता प्रदान करता है।

सीओसी का डिज़ाइन ब्लूटूथ कोर विशिष्टता संस्करण 5 (बीटी) का संदर्भ देता है। मुख्य विशिष्टताओं के साथ संरेखित रहने के लिए, इस पृष्ठ पर सभी मल्टी-बाइट मानों को लिटिल-एंडियन के रूप में पढ़ा जाएगा।

शब्दावली

  • सेंट्रल - एंड्रॉइड डिवाइस जो ब्लूटूथ पर विज्ञापनों को स्कैन करता है।
  • परिधीय - श्रवण यंत्र जो ब्लूटूथ पर विज्ञापन पैकेट भेजता है।

नेटवर्क टोपोलॉजी और सिस्टम आर्किटेक्चर

श्रवण यंत्रों के लिए सीओसी का उपयोग करते समय, नेटवर्क टोपोलॉजी एक केंद्रीय और दो परिधीय, एक बाएं और एक दाएं मानती है, जैसा कि चित्र 1 में देखा गया है। ब्लूटूथ ऑडियो सिस्टम बाएँ और दाएँ बाह्य उपकरणों को एकल ऑडियो सिंक के रूप में देखता है। यदि मोनोरल फिट या कनेक्शन के नुकसान के कारण एक परिधीय गायब है, तो केंद्रीय बाएं और दाएं ऑडियो चैनल को मिलाता है और ऑडियो को शेष परिधीय तक पहुंचाता है। यदि सेंट्रल दोनों बाह्य उपकरणों से कनेक्शन खो देता है, तो सेंट्रल मानता है कि ऑडियो सिंक का लिंक खो गया है। उन मामलों में, केंद्रीय ऑडियो को दूसरे आउटपुट पर रूट करता है।


चित्र 1. बीएलई पर सीओसी का उपयोग करके एंड्रॉइड मोबाइल उपकरणों के साथ श्रवण यंत्रों को जोड़ने के लिए टोपोलॉजी

जब सेंट्रल परिधीय पर ऑडियो डेटा स्ट्रीम नहीं कर रहा है और बीएलई कनेक्शन बनाए रख सकता है, तो सेंट्रल को परिधीय से डिस्कनेक्ट नहीं करना चाहिए। कनेक्शन बनाए रखने से परिधीय पर रहने वाले GATT सर्वर को डेटा संचार की अनुमति मिलती है।

श्रवण उपकरणों को जोड़ते और कनेक्ट करते समय, केंद्रीय यह करेगा:

  • हाल ही में जोड़े गए बाएँ और दाएँ बाह्य उपकरणों पर नज़र रखें।
  • मान लें कि यदि वैध युग्मन मौजूद है तो परिधीय उपकरण उपयोग में हैं। कनेक्शन खो जाने पर सेंट्रल युग्मित डिवाइस से कनेक्ट या पुनः कनेक्ट करने का प्रयास करेगा।
  • मान लें कि यदि कोई युग्मन हटा दिया गया है तो परिधीय उपकरण अब उपयोग में नहीं हैं।

उपरोक्त मामलों में, युग्मन का तात्पर्य ओएस में दिए गए यूयूआईडी और बाएं/दाएं डिज़ाइनर के साथ श्रवण यंत्रों के एक सेट को पंजीकृत करने की कार्रवाई से है, न कि ब्लूटूथ युग्मन प्रक्रिया से।

सिस्टम आवश्यकताएं

अच्छे उपयोगकर्ता अनुभव के लिए सीओसी को ठीक से लागू करने के लिए, केंद्रीय और परिधीय उपकरणों में ब्लूटूथ सिस्टम को:

  • एक अनुपालक बीटी 4.2 या उच्चतर नियंत्रक लागू करें। LE सिक्योर कनेक्शंस की अत्यधिक अनुशंसा की जाती है।
  • ऑडियो पैकेट प्रारूप और समय में वर्णित मापदंडों के साथ कम से कम 2 एक साथ LE लिंक का केंद्रीय समर्थन होना चाहिए।
  • ऑडियो पैकेट प्रारूप और समय में वर्णित मापदंडों के साथ कम से कम 1 एलई लिंक का परिधीय समर्थन होना चाहिए।
  • एलई क्रेडिट आधारित प्रवाह नियंत्रण रखें [बीटी खंड 3, भाग ए, धारा 10.1]। डिवाइस सीओसी पर कम से कम 167 बाइट्स के एमटीयू और एमपीएस आकार का समर्थन करेंगे और 8 पैकेट तक बफर करने में सक्षम होंगे।
  • कम से कम 167 बाइट्स के पेलोड के साथ एक एलई डेटा लंबाई एक्सटेंशन [बीटी वॉल्यूम 6, पार्ट बी, सेक्शन 5.1.9] होना चाहिए।
  • केंद्रीय उपकरण HCI LE कनेक्शन अपडेट कमांड का समर्थन करता है और गैर-शून्य maximum_CE_Length और minimum_CE_Length पैरामीटर का अनुपालन करता है।
  • सेंट्रल के पास ऑडियो पैकेट प्रारूप और समय में कनेक्शन अंतराल और पेलोड आकार के साथ दो अलग-अलग बाह्य उपकरणों के लिए दो एलई सीओसी कनेक्शन के लिए डेटा थ्रूपुट बनाए रखना है।
  • परिधीय ने LL_LENGTH_REQ या LL_LENGTH_RSP फ्रेम में MaxRxOctets और MaxRxTime पैरामीटर को सबसे छोटे आवश्यक मान के रूप में सेट किया है जो इन विशिष्टताओं के लिए आवश्यक हैं। यह केंद्रीय को फ़्रेम प्राप्त करने के लिए आवश्यक समय की मात्रा की गणना करते समय अपने समय अनुसूचक को अनुकूलित करने देता है।

यह दृढ़ता से अनुशंसा की जाती है कि केंद्रीय और परिधीय बीटी 5.0 विनिर्देश में निर्दिष्ट 2 एमबी PHY का समर्थन करें। सेंट्रल 1M और 2M PHY दोनों पर कम से कम 64 kbit/s के ऑडियो लिंक का समर्थन करेगा। BLE लंबी दूरी की PHY का उपयोग नहीं किया जाएगा।

सीओसी लिंक परत एन्क्रिप्शन और फ़्रीक्वेंसी हॉपिंग के लिए मानक ब्लूटूथ तंत्र का उपयोग करता है।

आशा गैट सेवाएँ

एक परिधीय नीचे वर्णित हियरिंग एड (आशा) गैट सर्वर सेवा के लिए ऑडियो स्ट्रीमिंग को कार्यान्वित करेगा। सामान्य खोज योग्य मोड में होने पर परिधीय इस सेवा का विज्ञापन करेगा ताकि केंद्रीय ऑडियो सिंक को पहचान सके। किसी भी LE ऑडियो स्ट्रीमिंग संचालन के लिए एन्क्रिप्शन की आवश्यकता होगी। BLE ऑडियो स्ट्रीमिंग में निम्नलिखित विशेषताएं शामिल हैं:

विशेषता गुण विवरण
केवल पढ़ने योग्य गुण पढ़ना ReadOnlyProperties देखें।
ऑडियोकंट्रोलप्वाइंट बिना प्रतिक्रिया के लिखें और लिखें ऑडियो स्ट्रीम के लिए नियंत्रण बिंदु. ऑडियोकंट्रोलप्वाइंट देखें।
ऑडियोस्टेटसप्वाइंट पढ़ें/सूचित करें ऑडियो नियंत्रण बिंदु के लिए स्थिति रिपोर्ट फ़ील्ड। ऑडियोस्टैटसप्वाइंट देखें
आयतन बिना प्रतिक्रिया के लिखें -128 और 0 के बीच का बाइट स्ट्रीम किए गए ऑडियो सिग्नल पर लागू होने वाले क्षीणन की मात्रा को दर्शाता है, -48 डीबी से 0 डीबी तक। सेटिंग -128 को पूरी तरह से म्यूट के रूप में समझा जाएगा, यानी सबसे कम गैर-म्यूट वॉल्यूम स्तर -127 है जो -47.625 डीबी क्षीणन के बराबर है। सेटिंग 0 पर, स्ट्रीम किया गया रेल-टू-रेल साइन टोन श्रवण उपकरण पर 100 डीबीएसपीएल इनपुट के बराबर का प्रतिनिधित्व करेगा। केंद्रीय नाममात्र पूर्ण पैमाने पर स्ट्रीम करेगा और परिधीय में वांछित प्रस्तुति स्तर निर्धारित करने के लिए इस चर का उपयोग करेगा।
LE_PSM_OUT पढ़ना ऑडियो चैनल को जोड़ने के लिए पीएसएम का उपयोग करें। गतिशील रेंज से चुना जाना है [बीटी खंड 3, भाग ए, खंड 4.22]

सेवा और विशेषताओं को सौंपे गए यूयूआईडी:

सेवा यूयूआईडी : {0xFDF0}

विशेषता यूयूआईडी
केवल पढ़ने योग्य गुण {6333651e-c481-4a3e-9169-7c902aad37bb}
ऑडियोकंट्रोलप्वाइंट {f0d4de7e-4a88-476c-9d9f-1937b0996cc0}
ऑडियो स्थिति {38663f1a-e711-4cac-b641-326b56404837}
आयतन {00e4ca9e-ab14-41e4-8823-f9e70c7e91df}
LE_PSM_OUT {2d410339-82b6-42aa-b34e-e2e01df8cc1a}

आशा गैट सेवा के अलावा, परिधीय डिवाइस सूचना सेवा को भी लागू करेगा ताकि केंद्रीय परिधीय के निर्माता के नाम और डिवाइस नामों का पता लगा सके।

केवल पढ़ने योग्य गुण

ReadOnlyProperties में निम्नलिखित मान हैं:

बाइट विवरण
0 संस्करण - 0x01 होना चाहिए
1 डिवाइस क्षमताएँ देखें।
2-9 HiSyncId देखें।
10 फ़ीचरमैप देखें
11-12 रेंडरडिले। यह वह समय है, मिलीसेकंड में, जब परिधीय को एक ऑडियो फ़्रेम प्राप्त होता है, जब तक कि परिधीय आउटपुट प्रस्तुत नहीं करता है। इन बाइट्स का उपयोग किसी वीडियो को ऑडियो के साथ सिंक्रनाइज़ करने में देरी करने के लिए किया जा सकता है।
13-14 भविष्य उपयोग के लिए आरक्षित। शून्य से आरंभ करें.
15-16 समर्थित कोडेक आईडी . यह समर्थित कोडेक आईडी का एक बिटमास्क है। बिट स्थान में 1 एक समर्थित कोडेक से मेल खाता है। उदाहरण के लिए, 0x0002 इंगित करता है कि 16 kHz पर G.722 समर्थित है। अन्य सभी बिट्स को 0 पर सेट किया जाएगा।

डिवाइस क्षमताएँ

अंश विवरण
0 डिवाइस साइड (0: बाएँ, 1: दाएँ)
1 इंगित करता है कि क्या डिवाइस स्टैंड-अलोन है और मोनो डेटा प्राप्त करता है, या यदि डिवाइस एक सेट का हिस्सा है (0: मोनोरल, 1: बाइन्यूरल)
2 डिवाइस सीएसआईएस का समर्थन करता है (0: समर्थित नहीं, 1: समर्थित)
3-7 आरक्षित (0 पर सेट)

HiSyncID

यह फ़ील्ड सभी बाइन्यूरल उपकरणों के लिए अद्वितीय होनी चाहिए लेकिन यह बाएँ और दाएँ सेट के लिए समान होनी चाहिए।

बाइट विवरण
0-1 निर्माता की आईडी. यह बीटीएसआईजी द्वारा निर्दिष्ट कंपनी पहचानकर्ता है।
2-7 हियरिंग एड सेट की पहचान करने वाली विशिष्ट आईडी। यह आईडी बाएँ और दाएँ दोनों परिधीय पर समान रूप से सेट की जानी चाहिए।

फ़ीचरमैप

अंश विवरण
0 LE CoC ऑडियो आउटपुट स्ट्रीमिंग समर्थित (हां/नहीं)।
1-7 आरक्षित (0 पर सेट)।

कोडेक आईडी

यदि बिट सेट है, तो वह विशेष कोडेक समर्थन है।

आईडी/बिट संख्या कोडेक और नमूना दर आवश्यक बिटरेट समय सीमा केंद्रीय (सी) या परिधीय (पी) पर अनिवार्य
0 सुरक्षित सुरक्षित सुरक्षित सुरक्षित
1 जी.722 @ 16 किलोहर्ट्ज़ 64 केबीटी/एस चर सी और पी
2-15 आरक्षित हैं.
0 भी आरक्षित है.

ऑडियोकंट्रोलप्वाइंट

LE CoC बंद होने पर इस नियंत्रण बिंदु का उपयोग नहीं किया जा सकता है। प्रक्रिया विवरण के लिए ऑडियो स्ट्रीम शुरू करना और रोकना देखें।

ऑपकोड बहस GATT उप-प्रक्रिया विवरण
1 «Start»
  • uint8_t codec
  • uint8_t audiotype
  • int8_t volume
  • int8_t otherstate
प्रतिक्रिया के साथ लिखें, और AudioStatusPoint विशेषता के माध्यम से एक अतिरिक्त स्थिति अधिसूचना की अपेक्षा करें। परिधीय को कोडेक को रीसेट करने और फ्रेम 0 का प्लेबैक शुरू करने का निर्देश देता है। कोडेक फ़ील्ड इस प्लेबैक के लिए उपयोग करने के लिए कोडेक आईडी को इंगित करता है। उदाहरण के लिए, 16k Hz पर G.722 के लिए कोडेक फ़ील्ड "1" है।

ऑडियो प्रकार बिट फ़ील्ड स्ट्रीम में मौजूद ऑडियो प्रकार को इंगित करता है:
  • 0 - अज्ञात
  • 1 - रिंगटोन
  • 2 - फ़ोनकॉल
  • 3 - मीडिया
अन्यस्टेट फ़ील्ड इंगित करता है कि क्या बाइन्यूरल डिवाइस का दूसरा पक्ष जुड़ा हुआ है। जब अन्य परिधीय उपकरण जुड़ा होता है तो फ़ील्ड मान 1 होता है, अन्यथा मान 0 होता है।

परिधीय «Stop» ऑपकोड प्राप्त होने से पहले कनेक्शन अपडेट का अनुरोध नहीं करेगा।
2 «Stop» कोई नहीं प्रतिक्रिया के साथ लिखें, और AudioStatusPoint विशेषता के माध्यम से एक अतिरिक्त स्थिति अधिसूचना की अपेक्षा करें। परिधीय को ऑडियो प्रस्तुत करना बंद करने का निर्देश देता है। ऑडियो को फिर से प्रस्तुत करने के लिए इस स्टॉप के बाद एक नया ऑडियो सेटअप अनुक्रम शुरू किया जाना चाहिए।
3 «Status»
  • uint8_t connected
बिना प्रतिक्रिया के लिखें कनेक्टेड पेरिफेरल को सूचित करता है कि अन्य पेरिफेरल पर स्थिति अपडेट है। कनेक्टेड फ़ील्ड अद्यतन के प्रकार को इंगित करता है:
  • 0 - अन्य परिधीय डिस्कनेक्ट हो गया
  • 1 - अन्य परिधीय जुड़ा हुआ
  • 2 - किसी भी कनेक्शन पर एक LE कनेक्शन पैरामीटर अपडेट हुआ

ऑडियोस्टेटसप्वाइंट

ऑडियो नियंत्रण बिंदु के लिए स्थिति रिपोर्ट फ़ील्ड

ऑपकोड विवरण
0 स्थिति ठीक है
-1 अज्ञात आदेश
-2 अवैध पैरामीटर

आशा गैट सेवा के लिए विज्ञापन

सेवा यूयूआईडी विज्ञापन पैकेट में होनी चाहिए। विज्ञापन या स्कैन प्रतिक्रिया फ़्रेम में, परिधीय में सेवा डेटा होना चाहिए:

बाइट ऑफसेट नाम विवरण
0 विज्ञापन लंबाई >= 0x09
1 एडी प्रकार 0x16 (सेवा डेटा - 16-बिट यूयूआईडी)
2-3 सेवा यूयूआईडी 0xFDF0 (लिटिल-एंडियन)

नोट: यह एक अस्थायी आईडी है.
4 प्रोटोकॉल संस्करण 0x01
5 क्षमता
  • 0 - बाएँ (0) या दाएँ (1) ओर
  • 1 - सिंगल (0) या डुअल (1) डिवाइस।
  • 2 - डिवाइस सीएसआईएस का समर्थन करता है (<0: समर्थित नहीं, 1: समर्थित)
  • 3-7 - आरक्षित. ये बिट्स शून्य होने चाहिए.
6-9 HiSyncID को छोटा कर दिया गया HiSyncId के चार सबसे कम महत्वपूर्ण बाइट्स। ये बाइट्स आईडी का सबसे यादृच्छिक हिस्सा होना चाहिए।

परिधीय उपकरणों में एक पूर्ण स्थानीय नाम डेटा प्रकार होना चाहिए जो श्रवण सहायता के नाम को इंगित करता है। इस नाम का उपयोग मोबाइल डिवाइस के उपयोगकर्ता इंटरफ़ेस पर किया जाएगा ताकि उपयोगकर्ता सही डिवाइस का चयन कर सके। नाम में बाएँ या दाएँ चैनल का संकेत नहीं दिया जाएगा क्योंकि यह जानकारी डिवाइसकैपेबिलिटीज़ में प्रदान की गई है।

यदि परिधीय नाम और आशा सेवा डेटा प्रकारों को एक ही फ्रेम प्रकार (एडीवी या स्कैन आरईएसपी) में रखते हैं, तो दो डेटा प्रकार ("पूर्ण स्थानीय नाम" और "आशा सेवा के लिए सेवा डेटा") एक ही फ्रेम में दिखाई देंगे। इससे मोबाइल डिवाइस स्कैनर को एक ही स्कैन परिणाम में दोनों डेटा प्राप्त हो सकते हैं।

आरंभिक युग्मन के दौरान, यह महत्वपूर्ण है कि परिधीय उपकरण इतनी तेज़ गति से विज्ञापित हों कि मोबाइल उपकरण शीघ्रता से परिधीय को खोज सके और उनसे जुड़ सके।

बाएँ और दाएँ परिधीय उपकरणों को सिंक्रनाइज़ करना

एंड्रॉइड मोबाइल उपकरणों पर ब्लूटूथ के साथ काम करने के लिए, परिधीय उपकरण यह सुनिश्चित करने के लिए ज़िम्मेदार हैं कि वे सिंक्रनाइज़ हैं। बाएँ और दाएँ परिधीय उपकरणों पर प्लेबैक को समय पर सिंक्रनाइज़ करने की आवश्यकता है। दोनों परिधीय उपकरणों को एक ही समय में स्रोत से ऑडियो नमूने वापस चलाने होंगे।

परिधीय उपकरण ऑडियो पेलोड के प्रत्येक पैकेट से जुड़े अनुक्रम संख्या का उपयोग करके अपने समय को सिंक्रनाइज़ कर सकते हैं। केंद्रीय गारंटी देता है कि प्रत्येक परिधीय पर एक ही समय में चलाए जाने वाले ऑडियो पैकेटों की अनुक्रम संख्या समान होती है। प्रत्येक ऑडियो पैकेट के बाद अनुक्रम संख्या एक से बढ़ जाती है। प्रत्येक अनुक्रम संख्या 8-बिट लंबी है, इसलिए अनुक्रम संख्याएं 256 ऑडियो पैकेट के बाद दोहराई जाएंगी। चूंकि प्रत्येक ऑडियो पैकेट का आकार और नमूना दर प्रत्येक कनेक्शन के लिए तय की गई है, इसलिए दो परिधीय सापेक्ष खेल समय को कम कर सकते हैं। ऑडियो पैकेट के बारे में अधिक जानकारी के लिए, ऑडियो पैकेट प्रारूप और समय देखें।

जब सिंक्रोनाइज़ेशन की आवश्यकता हो सकती है तो केंद्रीय द्विकर्णीय उपकरणों को ट्रिगर प्रदान करके सहायता करता है। जब भी कोई ऐसा ऑपरेशन होता है जो सिंक्रनाइज़ेशन को प्रभावित कर सकता है तो ये ट्रिगर प्रत्येक परिधीय को उसके युग्मित परिधीय उपकरण की स्थिति के बारे में सूचित करते हैं। ट्रिगर हैं:

  • AudioControlPoint के «Start» कमांड के भाग के रूप में, बाइनॉरल डिवाइस के दूसरी तरफ की वर्तमान कनेक्शन स्थिति दी गई है।
  • जब भी एक परिधीय पर कोई कनेक्शन, डिस्कनेक्शन, या कनेक्शन पैरामीटर अपडेट ऑपरेशन होता है, तो AudioControlPoint का «Status» कमांड बाइनॉरल डिवाइस के दूसरी तरफ भेजा जाता है।

ऑडियो पैकेट प्रारूप और समय

ऑडियो फ़्रेम (नमूनों के ब्लॉक) को पैकेट में पैक करने से श्रवण यंत्र को लिंक लेयर टाइमिंग एंकर से समय प्राप्त करने की सुविधा मिलती है। कार्यान्वयन को सरल बनाने के लिए:

  • एक ऑडियो फ़्रेम को हमेशा समय में कनेक्शन अंतराल से मेल खाना चाहिए। उदाहरण के लिए, यदि कनेक्शन अंतराल 20ms है और नमूना दर 16 kHz है, तो ऑडियो फ़्रेम में 320 नमूने होंगे।
  • सिस्टम में नमूना दरें 8kHz के गुणकों तक सीमित हैं ताकि फ़्रेम समय या कनेक्शन अंतराल की परवाह किए बिना हमेशा एक फ्रेम में नमूनों की पूर्णांक संख्या हो।
  • एक अनुक्रम बाइट ऑडियो फ्रेम से पहले होगा। अनुक्रम बाइट की गिनती रैप-अराउंड के साथ की जाएगी और परिधीय को बफर बेमेल या अंडरफ्लो का पता लगाने की अनुमति दी जाएगी।
  • एक ऑडियो फ़्रेम हमेशा एकल LE पैकेट में फ़िट होना चाहिए। ऑडियो फ़्रेम को एक अलग L2CAP पैकेट के रूप में भेजा जाएगा। एलई एलएल पीडीयू का आकार होगा:
    ऑडियो पेलोड आकार + 1 (अनुक्रम काउंटर) + 6 (एल2सीएपी हेडर के लिए 4, एसडीयू के लिए 2)
  • एक कनेक्शन ईवेंट हमेशा इतना बड़ा होना चाहिए कि उसमें एसीके के लिए 2 ऑडियो पैकेट और 2 खाली पैकेट शामिल हों ताकि रीट्रांसमिशन के लिए बैंडविड्थ आरक्षित हो सके। ध्यान दें कि ऑडियो पैकेट सेंट्रल के ब्लूटूथ नियंत्रक द्वारा खंडित हो सकता है। परिधीय को प्रति कनेक्शन इवेंट 2 से अधिक खंडित ऑडियो पैकेट प्राप्त करने में सक्षम होना चाहिए।

केंद्रीय को कुछ लचीलापन देने के लिए, G.722 पैकेट की लंबाई निर्दिष्ट नहीं है। G.722 पैकेट की लंबाई केंद्रीय द्वारा निर्धारित कनेक्शन अंतराल के आधार पर बदल सकती है।

G.722 आउटपुट ऑक्टेट प्रारूप Rec का संदर्भ देता है। आईटीयू-टी जी.722 (09/2012) खंड 1.4.4 "मल्टीप्लेक्सर"

उन सभी कोडेक्स के लिए जो एक परिधीय समर्थन करता है, परिधीय नीचे दिए गए कनेक्शन मापदंडों का समर्थन करेगा। यह कॉन्फ़िगरेशन की एक गैर-विस्तृत सूची है जिसे केंद्र लागू कर सकता है।

कोडेक बिटरेट कनेक्शन अंतराल सीई लंबाई (1M/2M PHY) ऑडियो पेलोड आकार
जी.722 @ 16 किलोहर्ट्ज़ 64 केबीटी/एस 20 एमएस 5000/3750 हमें 160 बाइट्स

ऑडियो स्ट्रीम शुरू करना और रोकना

ऑडियो स्ट्रीम शुरू करने से पहले, केंद्रीय परिधीय पर सवाल उठाता है और एक सामान्य विभाजक कोडेक स्थापित करता है। इसके बाद स्ट्रीम सेटअप निम्नलिखित क्रम से आगे बढ़ता है:

  1. PSM, और वैकल्पिक रूप से, RenderDelay पढ़ा जाता है। इन मूल्यों को केंद्रीय द्वारा कैश किया जा सकता है।
  2. CoC L2CAP चैनल खोला गया है - परिधीय प्रारंभ में 8 क्रेडिट प्रदान करेगा।
  3. चुने गए कोडेक के लिए आवश्यक पैरामीटर पर लिंक स्विच करने के लिए एक कनेक्शन अपडेट जारी किया जाता है। सेंट्रल यह कनेक्शन अपडेट पिछले चरण में CoC कनेक्शन से पहले कर सकता है।
  4. केंद्रीय और परिधीय होस्ट दोनों अद्यतन पूर्ण घटना की प्रतीक्षा करते हैं।
  5. ऑडियो एनकोडर को पुनरारंभ करें, और पैकेट अनुक्रम गिनती को 0 पर रीसेट करें। ऑडियोकंट्रोलपॉइंट पर संबंधित पैरामीटर के साथ एक «Start» कमांड जारी किया जाता है। केंद्रीय स्ट्रीमिंग से पहले परिधीय से पूर्व «Start» कमांड की सफल स्थिति अधिसूचना की प्रतीक्षा करता है। यह प्रतीक्षा परिधीय को अपनी ऑडियो प्लेबैक पाइपलाइन तैयार करने के लिए समय देती है। ऑडियो स्ट्रीमिंग के दौरान, प्रतिकृति प्रत्येक कनेक्शन ईवेंट पर उपलब्ध होनी चाहिए, भले ही वर्तमान प्रतिकृति विलंबता गैर-शून्य हो।
  6. परिधीय अपनी आंतरिक कतार (अनुक्रम संख्या 0) से पहला ऑडियो पैकेट लेता है और उसे चलाता है।

केंद्रीय ऑडियो स्ट्रीम को बंद करने के लिए "स्टॉप" कमांड जारी करता है। इस आदेश के बाद, परिधीय को प्रत्येक कनेक्शन ईवेंट पर उपलब्ध होने की आवश्यकता नहीं है। ऑडियो स्ट्रीमिंग को फिर से शुरू करने के लिए, चरण 5 से शुरू करते हुए, उपरोक्त क्रम से गुजरें। जब सेंट्रल ऑडियो स्ट्रीमिंग नहीं कर रहा हो, तब भी उसे GATT सेवाओं के लिए LE कनेक्शन बनाए रखना चाहिए।

पेरिफेरल सेंट्रल को कनेक्शन अपडेट जारी नहीं करेगा। बिजली बचाने के लिए, जब केंद्रीय ऑडियो स्ट्रीमिंग नहीं कर रहा हो तो वह परिधीय के लिए कनेक्शन अपडेट जारी कर सकता है।