إضافة تحسينات جودة الصوت إلى تجربة الاتصال الصوتي
يمكن لقدرات منع الضوضاء لتأثيرات الصوت في Azure Communication Services تحسين مكالماتك الصوتية عن طريق تصفية الضوضاء الخلفية غير المرغوب فيها. منع الضوضاء هو تقنية تزيل ضوضاء الخلفية من المكالمات الصوتية. فهو يجعل المكالمات الصوتية أكثر وضوحا وأفضل من خلال القضاء على الضوضاء في الخلفية، مما يسهل التحدث والاستماع. يمكن أن يقلل قمع الضوضاء أيضا من تشتيت الانتباه والتعب الناجم عن الأماكن الصاخبة. على سبيل المثال، إذا كنت تتلقى مكالمة Azure Communication Services WebJS في مقهى به ضوضاء كبيرة، فإن تشغيل منع الضوضاء يمكن أن يجعل تجربة المكالمة أفضل.
هام
الوظائف الموضحة في هذه المقالة موجودة حاليا في المعاينة العامة. يجري توفير إصدار المعاينة هذا دون اتفاقية على مستوى الخدمة، ولا نوصي باستخدامه لأحمال عمل الإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
استخدام التأثيرات الصوتية - منع الضوضاء
تثبيت الحزمة NPM:
npm install
استخدم الأمر لتثبيت Azure Communication Services Audio Effects SDK ل JavaScript.
هام
يستخدم هذا البرنامج التعليمي إصدار Azure Communication Services Calling SDK من 1.24.2-beta.1
(أو أكبر) وإصدار Azure Communication Services Calling Audio Effects SDK أكبر من (أو أكبر) أو مساويا 1.1.1-beta.1
له.
@azure/communication-calling-effects@1.1.1-beta
إشعار
لا يمكن استخدام مكتبة تأثير الاستدعاء مستقلة ويمكن أن تعمل فقط عند استخدامها مع مكتبة عميل Azure Communication Calling ل WebJS (https://www.npmjs.com/package/@azure/communication-calling).
يمكنك العثور على مزيد من التفاصيل حول صفحة حزمة npm لتأثيرات الاستدعاء.
إشعار
يتوفر دعم المستعرض الحالي لإضافة تأثيرات منع الضوضاء الصوتية فقط على متصفحات Chrome و Edge لسطح المكتب.
يمكنك التعرف على تفاصيل واجهة برمجة التطبيقات الاستدعاء.
لاستخدام noise suppression
التأثيرات الصوتية داخل Azure Communication Calling SDK، تحتاج إلى LocalAudioStream
الموجود حاليا في المكالمة. تحتاج إلى الوصول إلى AudioEffects
واجهة برمجة التطبيقات لبدء التأثيرات الصوتية LocalAudioStream
وإيقافها.
import * as AzureCommunicationCallingSDK from '@azure/communication-calling';
import { DeepNoiseSuppressionEffect } from '@azure/communication-calling-effects';
// Get the LocalAudioStream from the localAudioStream collection on the call object
// 'call' here represents the call object.
const localAudioStreamInCall = call.localAudioStreams[0];
// Get the audio effects feature API from LocalAudioStream
const audioEffectsFeatureApi = localAudioStreamInCall.feature(SDK.Features.AudioEffects);
// Subscribe to useful events that show audio effects status
audioEffectsFeatureApi.on('effectsStarted', (activeEffects: ActiveAudioEffects) => {
console.log(`Current status audio effects: ${activeEffects}`);
});
audioEffectsFeatureApi.on('effectsStopped', (activeEffects: ActiveAudioEffects) => {
console.log(`Current status audio effects: ${activeEffects}`);
});
audioEffectsFeatureApi.on('effectsError', (error: AudioEffectErrorPayload) => {
console.log(`Error with audio effects: ${error.message}`);
});
في أي وقت إذا كنت تريد التحقق من تأثيرات منع الضوضاء النشطة حاليا، يمكنك استخدام الخاصية activeEffects
.
ترجع activeEffects
الخاصية كائنا بأسماء التأثيرات النشطة الحالية.
// Using the audio effects feature api
const currentActiveEffects = audioEffectsFeatureApi.activeEffects;
بدء مكالمة مع تمكين منع الضوضاء
لبدء مكالمة مع تشغيل منع الضوضاء، يمكنك إنشاء جديد LocalAudioStream
باستخدام AudioDeviceInfo
(لا يجب أن يكون مصدر LocalAudioStream خاما MediaStream
لاستخدام التأثيرات الصوتية)، وتمريره في CallStartOptions.audioOptions
:
// As an example, here we are simply creating a LocalAudioStream using the current selected mic on the DeviceManager
const audioDevice = deviceManager.selectedMicrophone;
const localAudioStreamWithEffects = new SDK.LocalAudioStream(audioDevice);
const audioEffectsFeatureApi = localAudioStreamWithEffects.feature(SDK.Features.AudioEffects);
// Start effect
await audioEffectsFeatureApi.startEffects({
noiseSuppression: deepNoiseSuppression
});
// Pass the LocalAudioStream in audioOptions in call start/accept options.
await call.startCall({
audioOptions: {
muted: false,
localAudioStreams: [localAudioStreamWithEffects]
}
});
كيفية تشغيل منع الضوضاء أثناء مكالمة مستمرة
هناك حالات قد يبدأ فيها المستخدم مكالمة ولا يكون منع الضوضاء قيد التشغيل، ولكن بيئته الحالية قد تصبح مزعجة مما يؤدي إلى حاجته إلى تشغيل منع الضوضاء. لتشغيل منع الضوضاء، يمكنك استخدام audioEffectsFeatureApi.startEffects
واجهة برمجة التطبيقات.
// Create the noise supression instance
const deepNoiseSuppression = new DeepNoiseSuppressionEffect();
// Its recommened to check support for the effect in the current environment using the isSupported method on the feature API. Remember that Noise Supression is only supported on Desktop Browsers for Chrome and Edge
const isDeepNoiseSuppressionSupported = await audioEffectsFeatureApi.isSupported(deepNoiseSuppression);
if (isDeepNoiseSuppressionSupported) {
console.log('Noise supression is supported in browser environment');
}
// To start ACS Deep Noise Suppression,
await audioEffectsFeatureApi.startEffects({
noiseSuppression: deepNoiseSuppression
});
// To stop ACS Deep Noise Suppression
await audioEffectsFeatureApi.stopEffects({
noiseSuppression: true
});
تعرف على كيفية تكوين عوامل تصفية الصوت باستخدام Calling Native SDKs.
توفر التأثيرات الصوتية ل Azure Communication Services عوامل تصفية يمكنها تحسين مكالمتك الصوتية. بالنسبة للأنظمة الأساسية الأصلية (Android وiOS وWindows) يمكنك تكوين عوامل التصفية التالية:
إلغاء صدى الصوت
فهو يزيل الصدى الصوتي الناتج عن رداء صوت المتصل مرة أخرى إلى الميكروفون بعد أن ينبعث من السماعة، ما يضمن اتصالا واضحا.
يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. يمكنك فقط تبديل إلغاء صدى الصوت فقط إذا تم تمكين وضع الموسيقى. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
قمع الضوضاء
تحسين جودة الصوت لتصفية الضوضاء الخلفية غير المرغوب فيها مثل الكتابة أو تكييف الهواء أو أصوات الشوارع. تضمن هذه التقنية أن يكون الصوت واضحا وواضحا، مما يسهل التواصل الأكثر فعالية.
يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. الأوضاع المتوفرة حاليا هي Off
و Low
Auto
و و.High
بشكل افتراضي، يتم تعيين هذه الميزة إلى High
الوضع.
التحكم التلقائي في الاكتساب (AGC)
يقوم تلقائيا بضبط مستوى صوت الميكروفون لضمان مستويات صوت متناسقة طوال المكالمة.
- التحكم التلقائي في الكسب التمثيلي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
- التحكم في الاكتساب التلقائي الرقمي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
وضع الموسيقى
وضع الموسيقى هو عامل تصفية متوفر قبل المكالمة وأثناءها. تعرف على المزيد حول وضع الموسيقى هنا. يعمل وضع الموسيقى فقط على الأنظمة الأساسية الأصلية التي تزيد عن 1n1 أو مكالمات جماعية ولا يعمل في مكالمات 1:1 بين المكالمات الأصلية والويب. بشكل افتراضي، يتم تعطيل وضع الموسيقى.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. إنشاء حساب مجانًا
- تم نشر مورد Communication Services. إنشاء مورد لخدمات الاتصال
- رمز وصول المستخدم لتمكين العميل المتصل. لمزيد من المعلومات، راجع إنشاء رموز الوصول المميزة وإدارتها.
- اختياري: أكمل التشغيل السريع لإضافة مكالمات صوتية إلى تطبيقك
تثبيت حزمة SDK
حدد موقع ملف build.gradle على مستوى المشروع وأضف mavenCentral()
إلى قائمة المستودعات ضمن buildscript
وallprojects
:
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
بعد ذلك، في ملف build.gradle على مستوى الوحدة النمطية، أضف الأسطر التالية إلى dependencies
القسم:
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
تهيئة الكائنات المطلوبة
لإنشاء مثيل CallAgent
، يجب عليك استدعاء createCallAgent
الأسلوب على مثيل CallClient
. يقوم هذا الاستدعاء بإرجاع كائن مثيل CallAgent
بشكل غير متزامن.
createCallAgent
يأخذ CommunicationUserCredential
الأسلوب كوسيطة، والتي تغلف رمز مميز للوصول.
للوصول إلى DeviceManager
، يجب إنشاء مثيل callAgent
أولا. ثم يمكنك استخدام CallClient.getDeviceManager
الأسلوب للحصول على DeviceManager
.
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential).get();
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
لتعيين اسم عرض للمتصل، استخدم هذا الأسلوب البديل:
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgentOptions callAgentOptions = new CallAgentOptions();
callAgentOptions.setDisplayName("Alice Bob");
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential, callAgentOptions).get();
تمكنك ميزة تصفية الصوت من تطبيق خيارات معالجة الصوت المسبق المختلفة على الصوت الصادر. هناك نوعان من عوامل تصفية الصوت: OutgoingAudioFilters
و LiveOutgoingAudioFilters
. يتم استخدامها OutgoingAudioFilters
لتغيير الإعدادات قبل بدء المكالمة وتغيير LiveOutgoingAudioFilters
الإعدادات أثناء إجراء مكالمة.
تحتاج أولا إلى استيراد Calling SDK والفئات المقترنة:
import com.azure.android.communication.calling.OutgoingAudioOptions;
import com.azure.android.communication.calling.OutgoingAudioFilters;
import com.azure.android.communication.calling.LiveOutgoingAudioFilters;
قبل بدء المكالمة
OutgoingAudioFilters
يمكن تطبيقه عند بدء المكالمة.
ابدأ بإنشاء OutgoingAudioFilters
وتمريره إلى OutgoingAudioOptions كما هو موضح في التعليمات البرمجية التالية:
OutgoingAudioOptions outgoingAudioOptions = new OutgoingAudioOptions();
OutgoingAudioFilters filters = new OutgoingAudioFilters();
filters.setNoiseSuppressionMode(NoiseSuppressionMode.HIGH);
filters.setAnalogAutomaticGainControlEnabled(true);
filters.setDigitalAutomaticGainControlEnabled(true);
filters.setMusicModeEnabled(true);
filters.setAcousticEchoCancellationEnabled(true);
outgoingAudioOptions.setAudioFilters(filters);
أثناء المكالمة
يمكنك التقديم LiveOutgoingAudioFilters
بعد بدء المكالمة. يمكنك استرداد هذا الكائن من كائن الاستدعاء أثناء الاستدعاء. لتغيير الإعداد في LiveOutgoingAudioFilters
، قم بتعيين الأعضاء داخل الفئة إلى قيمة صالحة ويتم تطبيقها.
تتوفر مجموعة فرعية فقط من عوامل التصفية المتوفرة من OutgoingAudioFilters
خلال مكالمة نشطة: وضع الموسيقى وإلغاء الصدى ووضع منع الضوضاء.
LiveOutgoingAudioFilters filters = call.getLiveOutgoingAudioFilters();
filters.setMusicModeEnabled(false);
filters.setAcousticEchoCancellationEnabled(false);
filters.setNoiseSuppressionMode(NoiseSuppressionMode.HIGH);
تعرف على كيفية تكوين عوامل تصفية الصوت باستخدام Calling Native SDKs.
توفر التأثيرات الصوتية ل Azure Communication Services عوامل تصفية يمكنها تحسين مكالمتك الصوتية. بالنسبة للأنظمة الأساسية الأصلية (Android وiOS وWindows) يمكنك تكوين عوامل التصفية التالية:
إلغاء صدى الصوت
فهو يزيل الصدى الصوتي الناتج عن رداء صوت المتصل مرة أخرى إلى الميكروفون بعد أن ينبعث من السماعة، ما يضمن اتصالا واضحا.
يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. يمكنك فقط تبديل إلغاء صدى الصوت فقط إذا تم تمكين وضع الموسيقى. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
قمع الضوضاء
تحسين جودة الصوت لتصفية الضوضاء الخلفية غير المرغوب فيها مثل الكتابة أو تكييف الهواء أو أصوات الشوارع. تضمن هذه التقنية أن يكون الصوت واضحا وواضحا، مما يسهل التواصل الأكثر فعالية.
يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. الأوضاع المتوفرة حاليا هي Off
و Low
Auto
و و.High
بشكل افتراضي، يتم تعيين هذه الميزة إلى High
الوضع.
التحكم التلقائي في الاكتساب (AGC)
يقوم تلقائيا بضبط مستوى صوت الميكروفون لضمان مستويات صوت متناسقة طوال المكالمة.
- التحكم التلقائي في الكسب التمثيلي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
- التحكم في الاكتساب التلقائي الرقمي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
وضع الموسيقى
وضع الموسيقى هو عامل تصفية متوفر قبل المكالمة وأثناءها. تعرف على المزيد حول وضع الموسيقى هنا. يعمل وضع الموسيقى فقط على الأنظمة الأساسية الأصلية التي تزيد عن 1n1 أو مكالمات جماعية ولا يعمل في مكالمات 1:1 بين المكالمات الأصلية والويب. بشكل افتراضي، يتم تعطيل وضع الموسيقى.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. إنشاء حساب مجانًا
- تم نشر مورد Communication Services. إنشاء مورد لخدمات الاتصال
- رمز وصول المستخدم لتمكين العميل المتصل. لمزيد من المعلومات، راجع إنشاء رموز الوصول المميزة وإدارتها.
- اختياري: أكمل التشغيل السريع لإضافة مكالمات صوتية إلى تطبيقك
قم بإعداد النظام
قم بإنشاء مشروع Xcode
في Xcode، أنشئ مشروع iOS جديداً ثم حدد قالب تطبيق العرض الفردي. يستخدم هذا التشغيل السريع إطار عمل SwiftUI، لذلك يجب عليك تعيين Language إلى Swift وتعيين Interface إلى SwiftUI.
لن تقوم بإنشاء اختبارات خلال هذه البداية السريعة. لا تتردد في إلغاء تحديد خانة الاختيار تضمين الاختبارات .
تثبيت الحزمة والتبعيات باستخدام CocoaPods
إنشاء Podfile لتطبيقك، مثل هذا المثال:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
شغّل
pod install
.افتح
.xcworkspace
باستخدام Xcode.
اطلب الوصول إلى الميكروفون
للوصول إلى ميكروفون الجهاز، تحتاج إلى تحديث قائمة خصائص معلومات التطبيق باستخدام NSMicrophoneUsageDescription
. يمكنك تعيين القيمة المقترنة إلى سلسلة سيتم تضمينها في مربع الحوار الذي يستخدمه النظام لطلب الوصول من المستخدم.
انقر بزر الماوس الأيمن فوق إدخال Info.plist لشجرة المشروع، ثم حدد Open As>Source Code. أضف الأسطر التالية في قسم المستوى <dict>
الأعلى، ثم احفظ الملف.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
إعداد إطار عمل التطبيق
افتح ملف ContentView.swift الخاص بمشروعك. أضف إعلانا import
إلى أعلى الملف لاستيراد المكتبة AzureCommunicationCalling
. بالإضافة إلى ذلك، قم باستيراد AVFoundation
. ستحتاج إليها لطلبات إذن الصوت في التعليمات البرمجية.
import AzureCommunicationCalling
import AVFoundation
تهيئة CallAgent
لإنشاء مثيل CallAgent
من CallClient
، يجب عليك استخدام callClient.createCallAgent
أسلوب يقوم بإرجاع كائن CallAgent
بشكل غير متزامن بعد تهيئته.
لإنشاء عميل مكالمة، قم بتمرير كائن CommunicationTokenCredential
:
import AzureCommunication
let tokenString = "token_string"
var userCredential: CommunicationTokenCredential?
do {
let options = CommunicationTokenRefreshOptions(initialToken: token, refreshProactively: true, tokenRefresher: self.fetchTokenSync)
userCredential = try CommunicationTokenCredential(withOptions: options)
} catch {
updates("Couldn't created Credential object", false)
initializationDispatchGroup!.leave()
return
}
// tokenProvider needs to be implemented by Contoso, which fetches a new token
public func fetchTokenSync(then onCompletion: TokenRefreshOnCompletion) {
let newToken = self.tokenProvider!.fetchNewToken()
onCompletion(newToken, nil)
}
CommunicationTokenCredential
مرر الكائن الذي قمت بإنشائه إلى CallClient
، وقم بتعيين اسم العرض:
self.callClient = CallClient()
let callAgentOptions = CallAgentOptions()
options.displayName = " iOS Azure Communication Services User"
self.callClient!.createCallAgent(userCredential: userCredential!,
options: callAgentOptions) { (callAgent, error) in
if error == nil {
print("Create agent succeeded")
self.callAgent = callAgent
} else {
print("Create agent failed")
}
})
تمكنك ميزة تصفية الصوت من تطبيق خيارات معالجة الصوت المسبق المختلفة على الصوت الصادر. هناك نوعان من عوامل تصفية الصوت: OutgoingAudioFilters
و LiveOutgoingAudioFilters
. يتم استخدامها OutgoingAudioFilters
لتغيير الإعدادات قبل بدء المكالمة وتغيير LiveOutgoingAudioFilters
الإعدادات أثناء إجراء مكالمة.
تحتاج أولا إلى استيراد Calling SDK:
import AzureCommunicationCalling
قبل بدء المكالمة
OutgoingAudioFilters
يمكن تطبيقه عند بدء المكالمة.
ابدأ بإنشاء OutgoingAudioFilters
وتمريره إلى OutgoingAudioOptions كما هو موضح في التعليمات البرمجية التالية:
let outgoingAudioOptions = OutgoingAudioOptions()
let filters = OutgoingAudioFilters()
filters.NoiseSuppressionMode = NoiseSuppressionMode.high
filters.analogAutomaticGainControlEnabled = true
filters.digitalAutomaticGainControlEnabled = true
filters.musicModeEnabled = true
filters.acousticEchoCancellationEnabled = true
outgoingAudioOptions.audioFilters = filters
أثناء المكالمة
يمكنك التقديم LiveOutgoingAudioFilters
بعد بدء المكالمة. يمكنك استرداد هذا الكائن من كائن الاستدعاء أثناء الاستدعاء. لتغيير الإعداد في LiveOutgoingAudioFilters
، قم بتعيين الأعضاء داخل الفئة إلى قيمة صالحة ويتم تطبيقها.
تتوفر مجموعة فرعية فقط من عوامل التصفية المتوفرة من OutgoingAudioFilters
خلال مكالمة نشطة: وضع الموسيقى وإلغاء الصدى ووضع منع الضوضاء.
LiveOutgoingAudioFilters filters = call.liveOutgoingAudioFilters
filters.musicModeEnabled = true
filters.acousticEchoCancellationEnabled = true
filters.NoiseSuppressionMode = NoiseSuppressionMode.high
تعرف على كيفية تكوين عوامل تصفية الصوت باستخدام Calling Native SDKs.
توفر التأثيرات الصوتية ل Azure Communication Services عوامل تصفية يمكنها تحسين مكالمتك الصوتية. بالنسبة للأنظمة الأساسية الأصلية (Android وiOS وWindows) يمكنك تكوين عوامل التصفية التالية:
إلغاء صدى الصوت
فهو يزيل الصدى الصوتي الناتج عن رداء صوت المتصل مرة أخرى إلى الميكروفون بعد أن ينبعث من السماعة، ما يضمن اتصالا واضحا.
يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. يمكنك فقط تبديل إلغاء صدى الصوت فقط إذا تم تمكين وضع الموسيقى. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
قمع الضوضاء
تحسين جودة الصوت لتصفية الضوضاء الخلفية غير المرغوب فيها مثل الكتابة أو تكييف الهواء أو أصوات الشوارع. تضمن هذه التقنية أن يكون الصوت واضحا وواضحا، مما يسهل التواصل الأكثر فعالية.
يمكنك تكوين عامل التصفية قبل وأثناء المكالمة. الأوضاع المتوفرة حاليا هي Off
و Low
Auto
و و.High
بشكل افتراضي، يتم تعيين هذه الميزة إلى High
الوضع.
التحكم التلقائي في الاكتساب (AGC)
يقوم تلقائيا بضبط مستوى صوت الميكروفون لضمان مستويات صوت متناسقة طوال المكالمة.
- التحكم التلقائي في الكسب التمثيلي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
- التحكم في الاكتساب التلقائي الرقمي هو عامل تصفية متوفر فقط قبل إجراء مكالمة. بشكل افتراضي، يتم تمكين عامل التصفية هذا.
وضع الموسيقى
وضع الموسيقى هو عامل تصفية متوفر قبل المكالمة وأثناءها. تعرف على المزيد حول وضع الموسيقى هنا. يعمل وضع الموسيقى فقط على الأنظمة الأساسية الأصلية التي تزيد عن 1n1 أو مكالمات جماعية ولا يعمل في مكالمات 1:1 بين المكالمات الأصلية والويب. بشكل افتراضي، يتم تعطيل وضع الموسيقى.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. إنشاء حساب مجانًا
- تم نشر مورد Communication Services. إنشاء مورد لخدمات الاتصال
- رمز وصول المستخدم لتمكين العميل المتصل. لمزيد من المعلومات، راجع إنشاء رموز الوصول المميزة وإدارتها.
- اختياري: أكمل التشغيل السريع لإضافة مكالمات صوتية إلى تطبيقك
قم بإعداد النظام
إنشاء مشروع Visual Studio
بالنسبة لتطبيق UWP، في Visual Studio 2022، قم بإنشاء مشروع Blank App (Universal Windows) جديد. بعد إدخال اسم المشروع، لا تتردد في اختيار أي Windows SDK بعد 10.0.17763.0.
بالنسبة لتطبيق WinUI 3، قم بإنشاء مشروع جديد باستخدام قالب Blank App، Packaged (WinUI 3 in Desktop) لإعداد تطبيق WinUI 3 من صفحة واحدة. مطلوب SDK لتطبيق Windows الإصدار 1.3 أو أحدث.
تثبيت الحزمة والتبعيات باستخدام NuGet مدير الحِزَم
تتوفر واجهات برمجة تطبيقات SDK والمكتبات للاتصال بشكل عام عبر حزمة NuGet.
توضح الخطوات التالية كيفية العثور على حزمة Calling SDK NuGet وتنزيلها وتثبيتها:
- افتح NuGet مدير الحِزَم عن طريق تحديد أدوات>NuGet مدير الحِزَم> إدارة حزم NuGet للحل.
- حدد استعراض، ثم أدخل
Azure.Communication.Calling.WindowsClient
في مربع البحث. - تأكد من تحديد خانة الاختيار تضمين الإصدار التجريبي.
- حدد الحزمة
Azure.Communication.Calling.WindowsClient
، ثم حددAzure.Communication.Calling.WindowsClient
1.4.0-beta.1 أو إصدار أحدث. - حدد خانة الاختيار التي تتوافق مع مشروع Communication Services في علامة التبويب على الجانب الأيمن.
- حدد الزر تثبيت.
تمكنك ميزة تصفية الصوت من تطبيق معالجة مسبقة مختلفة للصوت على الصوت الصادر. هناك نوعان من عوامل تصفية الصوت: OutgoingAudioFilters
و LiveOutgoingAudioFilters
. يتم استخدامها OutgoingAudioFilters
لتغيير الإعدادات قبل بدء المكالمة وتغيير LiveOutgoingAudioFilters
الإعدادات أثناء إجراء مكالمة.
تحتاج أولا إلى استيراد Calling SDK:
using Azure.Communication;
using Azure.Communication.Calling.WindowsClient;
قبل بدء المكالمة
OutgoingAudioFilters
يمكن تطبيقه عند بدء المكالمة.
ابدأ بإنشاء OutgoingAudioFilters
وتمريره إلى OutgoingAudioOptions كما هو موضح في التعليمات البرمجية التالية:
var outgoingAudioOptions = new OutgoingAudioOptions();
var filters = new OutgoingAudioFilters()
{
AnalogAutomaticGainControlEnabled = true,
DigitalAutomaticGainControlEnabled = true,
MusicModeEnabled = true,
AcousticEchoCancellationEnabled = true,
NoiseSuppressionMode = NoiseSuppressionMode.High
};
outgoingAudioOptions.Filters = filters;
أثناء المكالمة
يمكنك تطبيق LiveOutgoingAudioFilters
بعد بدء استدعاء يمكنك استرداد هذا الكائن من كائن الاستدعاء بمجرد بدء المكالمة. لتغيير الإعداد في LiveOutgoingAudioFilters
، قم بتعيين الأعضاء داخل الفئة إلى قيمة صالحة ويتم تطبيقها.
تتوفر مجموعة فرعية فقط من عوامل التصفية المتوفرة من OutgoingAudioFilters
خلال مكالمة نشطة: وضع الموسيقى وإلغاء الصدى ووضع منع الضوضاء.
LiveOutgoingAudioFilters filter = call.LiveOutgoingAudioFilters;
filter.MusicModeEnabled = true;
filter.AcousticEchoCancellationEnabled = true;
filter.NoiseSuppressionMode = NoiseSuppressionMode.Auto;
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ