أفضل الممارسات: خدمات اتصالات Azure التي تتصل بمجموعات تطوير البرامج (SDK)

توفر هذه المقالة معلومات حول أفضل الممارسات المتعلقة باستدعاء مجموعات SDK الخاصة بخدمات اتصالات Azure.

Azure Communication Services web JavaScript SDK best practices

يوفر هذا القسم معلومات حول أفضل الممارسات المرتبطة بحزمة SDK لخدمات اتصالات Azure JavaScript للمكالمات الصوتية والمرئية.

جافا سكريبت المكالمات الصوتية والفيديو SDK

ميكروفون مكون إضافي أو تمكين الميكروفون من إدارة الأجهزة عند إجراء اتصالات Azure Communication Services قيد التقدم

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

التخلص من عرض عارض دفق الفيديو

يجب أن تتخلص VideoStreamRendererViewتطبيقات خدمات الاتصالات ، أو مثيلها الأصلي VideoStreamRenderer ، عندما لا تكون هناك حاجة إليها.

قم بتعليق المكالمة علىحدث التفريغ المسبق

يجب استدعاء call.hangup التطبيق الخاص بك عند onbeforeunload انبعاث الحدث.

التعامل مع مكالمات متعددة على علامات تبويب متعددة على الهاتف المحمول

يجب ألا يتصل تطبيقك بالمكالمات من علامات تبويب متصفح متعددة في وقت واحد لأن هذا يمكن أن يتسبب في سلوك غير محدد بسبب تخصيص الموارد للميكروفون والكاميرا على الجهاز. يتم تشجيع المطورين على تعليق المكالمات دائما عند اكتمالها في الخلفية قبل بدء مكالمة جديدة.

تعامل مع مكالمة كتم صوت نظام التشغيل عند إجراء مكالمة هاتفية.

أثناء إجراء مكالمة Azure Communications Services (لكل من iOS وAndroid) في حالة إجراء مكالمة هاتفية أو تنشيط المساعد الصوتي، سيقوم نظام التشغيل تلقائيا بكتم صوت الميكروفون والكاميرا الخاصين بالمستخدم. على Android، يتم إلغاء كتم صوت المكالمة تلقائيا وإعادة تشغيل الفيديو بعد انتهاء المكالمة الهاتفية. على iOS ، يتطلب الأمر إجراء المستخدم "لإلغاء كتم الصوت" و "بدء الفيديو" مرة أخرى. يمكنك الاستماع إلى الإشعار بأن الميكروفون قد تم كتمه بشكل غير متوقع مع حدث microphoneMuteUnexpectedlyالجودة . لاحظ أنه لكي تتمكن من إعادة الانضمام إلى مكالمة بشكل صحيح ، ستحتاج إلى استخدام SDK 1.2.3-beta.1 أو أعلى.

const latestMediaDiagnostic = call.api(SDK.Features.Diagnostics).media.getLatest();
const isIosSafari = (getOS() === OSName.ios) && (getPlatformName() === BrowserName.safari);
if (isIosSafari && latestMediaDiagnostic.microphoneMuteUnexpectedly && latestMediaDiagnostic.microphoneMuteUnexpectedly.value) {
  // received a QualityEvent on iOS that the microphone was unexpectedly muted - notify user to unmute their microphone and to start their video stream
}

يجب استدعاء call.startVideo(localVideoStream); التطبيق الخاص بك لبدء دفق فيديو ويجب استخدامه this.currentCall.unmute(); لإلغاء كتم الصوت.

إدارة الأجهزة

يمكنك استخدام Azure Communication Services SDK لإدارة أجهزتك وعمليات الوسائط.

  • يجب ألا يستخدم تطبيقك واجهات برمجة تطبيقات المتصفح الأصلية مثل getUserMedia أو getDisplayMedia للحصول على تدفقات خارج SDK. إذا قمت بذلك، فسيتعين عليك التخلص يدويا من تدفق (متدفقات) الوسائط قبل استخدام DeviceManager واجهات برمجة التطبيقات لإدارة الأجهزة أو غيرها من واجهات برمجة التطبيقات لإدارة الأجهزة عبر حزمة SDK لخدمات الاتصالات.

طلب أذونات الجهاز

يمكنك طلب أذونات الجهاز باستخدام SDK:

  • يجب استخدام DeviceManager.askDevicePermission التطبيق الخاص بك لطلب الوصول إلى أجهزة الصوت و / أو الفيديو.
  • إذا رفض المستخدم الوصول، فسيعرض "false" لنوع جهاز معين (صوت أو فيديو) في المكالمات اللاحقة، DeviceManager.askDevicePermission حتى بعد تحديث الصفحة. في هذا السيناريو، يجب أن يكتشف التطبيق الخاص بك أن المستخدم رفض الوصول مسبقا وتوجيه المستخدم إلى إعادة تعيين يدويا أو منح حق الوصول صراحة إلى نوع جهاز معين.

الكاميرا المستخدمة من قبل عملية أخرى

  • على Windows Chrome و Windows Edge ، إذا بدأت / انضممت / قبلت مكالمة مع تشغيل الفيديو وكان جهاز الكاميرا قيد الاستخدام من قبل عملية أخرى غير المتصفح الذي يعمل عليه ملف sdk على الويب ، بدء المكالمة بصوت فقط وليس بالفيديو. سيتم رفع الكاميراStartFailed UFD لأن الكاميرا فشلت في بدء التشغيل لأنها كانت تستخدم من قبل عملية أخرى. وينطبق الشيء نفسه على تشغيل الفيديو في منتصف المكالمة. يمكنك إيقاف تشغيل الكاميرا في العملية الأخرى بحيث تحرر هذه العملية جهاز الكاميرا ، ثم بدء تشغيل الفيديو مرة أخرى من المكالمة وسيتم الآن تشغيل الفيديو للمكالمة وسيبدأ المشاركون عن بعد في رؤية الفيديو الخاص بك.
  • هذه ليست مشكلة في MacOS Chrome ولا MacOS Safari لأن نظام التشغيل سيسمح للعمليات / سلاسل الرسائل بمشاركة جهاز الكاميرا.
  • على الأجهزة المحمولة ، إذا طلبت ProcessA جهاز الكاميرا ويتم استخدامه بواسطة ProcessB ، فستتجاوز ProcessA جهاز الكاميرا وستتوقف ProcessB عن استخدام جهاز الكاميرا
  • في iOS safari ، لا يمكنك تشغيل الكاميرا لعدة عملاء مكالمات داخل نفس علامة التبويب ولا عبر علامات التبويب. عندما يستخدم أي عميل مكالمة الكاميرا ، فإنه سيتفوق على الكاميرا من أي عميل مكالمة سابق كان يستخدمها. سيحصل عميل المكالمة السابقة على كاميراتوقفUFD بشكل غير متوقع.

الخطوات التالية

لمزيد من المعلومات، راجع المقالات التالية: