Sesli arama deneyiminize ses kalitesi geliştirmeleri ekleme

ses efektlerinin Azure İletişim Hizmetleri gürültü engelleme özellikleri, istenmeyen arka plan seslerini filtreleyerek sesli aramalarınızı geliştirebilir. Gürültü engelleme, sesli aramalardan gelen arka plan seslerini kaldıran bir teknolojidir. Arka plan gürültüsünü ortadan kaldırmak, konuşmayı ve dinlemeyi kolaylaştırır. Gürültü bastırma, gürültülü yerlerden kaynaklanan dikkat dağıtıcı ve yorgunluğu da azaltabilir. Örneğin, gürültülü bir kafede Azure İletişim Hizmetleri WebJS araması alıyorsanız gürültü engellemeyi açmak arama deneyimini daha iyi hale getirebilir.

Ses efektleri kullanma: Çağrı efektleri npm paketini yükleme

Önemli

Bu öğreticide, Azure İletişim Hizmetleri Çağırma Efektleri SDK'sı sürümü 1.28.4 veya sonraki bir sürümüyle birlikte Azure İletişim Hizmetleri Arama SDK'sı sürümü veya üzeri kullanılmaktadır1.1.2. Arama SDK'sının genel kullanılabilirlik (GA) kararlı sürümü 1.28.4 ve sonraki sürümleri gürültü engelleme özelliklerini destekler. Alternatif olarak, genel önizleme sürümünü kullanmayı tercih ederseniz SDK sürümlerini çağırma ve daha sonraki sürümler 1.24.2-beta.1 de gürültü engellemeyi destekler.

Ses gürültüsü engelleme efektleri eklemek için geçerli tarayıcı desteği yalnızca Chrome ve Edge masaüstü tarayıcılarında kullanılabilir.

Çağrı efektleri kitaplığı tek başına kullanılamaz. Yalnızca WebJS için Azure İletişim Hizmetleri Çağırma istemci kitaplığıyla kullanıldığında çalışır.

npm install JavaScript için Azure İletişim Hizmetleri Ses Efektleri SDK'sını yüklemek için komutunu kullanın.

Arama SDK'sının GA sürümünü kullanıyorsanız, Arama Efektleri SDK'sının GA sürümünü kullanmanız gerekir.

@azure/communication-calling-effects/v/latest

Arama SDK'sının genel önizlemesini kullanıyorsanız, Arama Efektleri SDK'sının beta sürümünü kullanmanız gerekir.

@azure/communication-calling-effects/v/next

Gürültü engelleme efektleri kitaplığını yükleme

Ses efektleri özelliklerini ve yöntemlerini ayrıntılarıyla gösteren arabirim hakkında bilgi için Ses Efektleri Özellik arabirimi API'sinin belgeleri sayfasına bakın.

Azure İletişim Hizmetleri Arama SDK'sı içinde gürültü engelleme ses efektlerini kullanmak için şu anda aramada olan özelliğe ihtiyacınız vardırLocalAudioStream. Ses efektlerini AudioEffects başlatmak ve durdurmak için özelliğin LocalAudioStream API'sine erişmeniz gerekir.

import * as AzureCommunicationCallingSDK from '@azure/communication-calling'; 
import { DeepNoiseSuppressionEffect } from '@azure/communication-calling-effects'; 

// Get 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(AzureCommunicationCallingSDK.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}`);
});

Hangi ses efektlerinin etkin olduğunu denetleyin

Şu anda etkin olan gürültü engelleme etkilerini denetlemek için özelliğini kullanabilirsiniz activeEffects .

özelliği, activeEffects geçerli etkin efektlerin adlarını içeren bir nesne döndürür.

// Use the audio effects feature API.
const currentActiveEffects = audioEffectsFeatureApi.activeEffects;

// Create the noise suppression instance.
const deepNoiseSuppression = new DeepNoiseSuppressionEffect();
// We recommend that you check support for the effect in the current environment by using the isSupported API 
// method. 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 local browser environment');
}

// To start Communication Services Deep Noise Suppression
await audioEffectsFeatureApi.startEffects({
    noiseSuppression: deepNoiseSuppression
});

// To stop Communication Services Deep Noise Suppression
await audioEffectsFeatureApi.stopEffects({
    noiseSuppression: true
});

Gürültü engelleme otomatik olarak etkinleştirildiğinde bir çağrı başlatma

Gürültü engelleme açıkken bir çağrı başlatabilirsiniz. ile yeni bir özellik oluşturun (LocalAudioStreamkaynak, ses efektlerini kullanmak için ham MediaStream bir özellik olmamalıdır) ve içinde geçirinCallStartOptions.audioOptions:LocalAudioStream AudioDeviceInfo

// As an example, here we're simply creating LocalAudioStream by using the current selected mic on DeviceManager.
const audioDevice = deviceManager.selectedMicrophone;
const localAudioStreamWithEffects = new AzureCommunicationCallingSDK.LocalAudioStream(audioDevice);
const audioEffectsFeatureApi = localAudioStreamWithEffects.feature(AzureCommunicationCallingSDK.Features.AudioEffects);

// Start effect
await audioEffectsFeatureApi.startEffects({
    noiseSuppression: deepNoiseSuppression
});

// Pass LocalAudioStream in audioOptions in call start/accept options.
await call.startCall({
    audioOptions: {
        muted: false,
        localAudioStreams: [localAudioStreamWithEffects]
    }
});

Devam eden arama sırasında gürültü engellemeyi açma

Bir arama başlatabilir ve gürültü engelleme açık olmayabilir. Ortam gürültülü olabilir, böylece gürültü engellemeyi açmanız gerekir. Gürültü engellemeyi açmak için API'yi audioEffectsFeatureApi.startEffects kullanabilirsiniz.

// Create the noise supression instance 
const deepNoiseSuppression = new DeepNoiseSuppressionEffect();

// Get 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(AzureCommunicationCallingSDK.Features.AudioEffects);

// We recommend that you check support for the effect in the current environment by 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 the current browser environment');
}

// To start Communication Services Deep Noise Suppression
await audioEffectsFeatureApi.startEffects({
    noiseSuppression: deepNoiseSuppression
});

// To stop Communication Services Deep Noise Suppression
await audioEffectsFeatureApi.stopEffects({
    noiseSuppression: true
});

Genişletilmiş API özelliği ayrıntıları için Ses Efektleri Özellik arabirimi belgeleri sayfasına bakın.

Yerel Arama SDK'ları ile ses filtrelerini yapılandırmayı öğrenin

Azure İletişim Hizmetleri ses efektleri, sesli aramanızı geliştirebilecek filtreler sunar. Yerel platformlar (Android, iOS ve Windows) için aşağıdaki filtreleri yapılandırabilirsiniz.

Yankı iptali

Arayanın sesinin hoparlörden yayıldıktan sonra mikrofona geri yankılanmasından kaynaklanan akustik yankıyı ortadan kaldırabilirsiniz. Yankı iptali net bir iletişim sağlar.

Aramadan önce ve çağrı sırasında filtreyi yapılandırabilirsiniz. Yankı iptali özelliğini yalnızca müzik modu etkinse değiştirebilirsiniz. Bu filtre varsayılan olarak etkindir.

Gürültü engelleme

Yazma, klima veya sokak sesleri gibi istenmeyen arka plan seslerini filtreleyerek ses kalitesini geliştirebilirsiniz. Bu teknoloji, daha etkili iletişimi kolaylaştırmak için sesin net ve net olmasını sağlar.

Aramadan önce ve çağrı sırasında filtreyi yapılandırabilirsiniz. Şu anda kullanılabilir modlar Kapalı, Otomatik, Düşük ve Yüksek'tir. Varsayılan olarak, bu özellik Yüksek olarak ayarlanır.

Otomatik kazanç denetimi

Arama boyunca tutarlı ses düzeyleri sağlamak için mikrofon ses düzeyini otomatik olarak ayarlayabilirsiniz.

  • Analog otomatik kazanç denetimi, yalnızca bir çağrıdan önce kullanılabilen bir filtredir. Bu filtre varsayılan olarak etkindir.
  • Dijital otomatik kazanç denetimi, yalnızca bir aramadan önce kullanılabilen bir filtredir. Bu filtre varsayılan olarak etkindir.

Müzik modu

Müzik modu, arama öncesinde ve sırasında kullanılabilen bir filtredir. Müzik modu hakkında daha fazla bilgi edinmek için bkz . Yerel Arama SDK'sı üzerinde Müzik modu. Müzik modu yalnızca bire bir veya grup çağrıları üzerinden yerel platformlarda çalışır. Yerel platformlar ile web arasındaki bire bir çağrılarda çalışmaz. Varsayılan olarak, müzik modu devre dışıdır.

Önkoşullar

SDK’yı yükleyin

Proje düzeyi build.gradle dosyanızı bulun ve ve allprojectsaltındaki buildscript depolar listesine ekleyinmavenCentral():

buildscript {
    repositories {
    ...
        mavenCentral()
    ...
    }
}
allprojects {
    repositories {
    ...
        mavenCentral()
    ...
    }
}

Ardından modül düzeyi build.gradle dosyanızda bölümüne aşağıdaki satırları dependencies ekleyin:

dependencies {
    ...
    implementation 'com.azure.android:azure-communication-calling:1.0.0'
    ...
}

Gerekli nesneleri başlatma

Örnek CallAgent oluşturmak için bir örnekte yöntemini CallClient çağırmanız createCallAgent gerekir. Bu çağrı zaman uyumsuz olarak bir CallAgent örnek nesnesi döndürür.

createCallAgent yöntemi, bir erişim belirtecini kapsülleyen bir bağımsız değişken olarak alırCommunicationUserCredential.

öğesine erişmek DeviceManageriçin önce bir callAgent örnek oluşturmanız gerekir. Ardından almak için DeviceManageryöntemini kullanabilirsinizCallClient.getDeviceManager.

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();

Çağıranın görünen adını ayarlamak için şu alternatif yöntemi kullanın:

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();

Giden sese farklı ses ön işleme seçenekleri uygulamak için ses filtresi özelliğini kullanabilirsiniz. İki tür ses filtresi ve LiveOutgoingAudioFiltersşeklindedirOutgoingAudioFilters. Arama başlamadan önce ayarları değiştirmek için kullanın OutgoingAudioFilters . Arama devam ederken ayarları değiştirmek için kullanın LiveOutgoingAudioFilters .

İlk olarak Çağrı SDK'sını ve ilişkili sınıfları içeri aktarmanız gerekir:

import com.azure.android.communication.calling.OutgoingAudioOptions;
import com.azure.android.communication.calling.OutgoingAudioFilters;
import com.azure.android.communication.calling.LiveOutgoingAudioFilters;

Arama başlamadan önce

Arama başladığında uygulayabilirsiniz OutgoingAudioFilters .

Aşağıdaki kodda gösterildiği gibi bir OutgoingAudioFilters özellik oluşturup içine geçirerek OutgoingAudioOptionsbaşlayın:

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);

Çağrı sırasında

Bir arama başladıktan sonra başvurabilirsiniz LiveOutgoingAudioFilters . Çağrı sırasında bu nesneyi çağrı nesnesinden alabilirsiniz. içindeki LiveOutgoingAudioFiltersayarı değiştirmek için sınıfın içindeki üyeleri geçerli bir değere ayarlayın ve uygulanırlar.

Etkin bir çağrı sırasında yalnızca içinden OutgoingAudioFilters kullanılabilen filtrelerin bir alt kümesi kullanılabilir. Bunlar müzik modu, yankı iptali ve gürültü engelleme modu.

LiveOutgoingAudioFilters filters = call.getLiveOutgoingAudioFilters();
filters.setMusicModeEnabled(false);
filters.setAcousticEchoCancellationEnabled(false);
filters.setNoiseSuppressionMode(NoiseSuppressionMode.HIGH);

Yerel Arama SDK'ları ile ses filtrelerini yapılandırmayı öğrenin

Azure İletişim Hizmetleri ses efektleri, sesli aramanızı geliştirebilecek filtreler sunar. Yerel platformlar (Android, iOS ve Windows) için aşağıdaki filtreleri yapılandırabilirsiniz.

Yankı iptali

Arayanın sesinin hoparlörden yayıldıktan sonra mikrofona geri yankılanmasından kaynaklanan akustik yankıyı ortadan kaldırabilirsiniz. Yankı iptali net bir iletişim sağlar.

Aramadan önce ve çağrı sırasında filtreyi yapılandırabilirsiniz. Yankı iptali özelliğini yalnızca müzik modu etkinse değiştirebilirsiniz. Bu filtre varsayılan olarak etkindir.

Gürültü engelleme

Yazma, klima veya sokak sesleri gibi istenmeyen arka plan seslerini filtreleyerek ses kalitesini geliştirebilirsiniz. Bu teknoloji, daha etkili iletişimi kolaylaştırmak için sesin net ve net olmasını sağlar.

Aramadan önce ve çağrı sırasında filtreyi yapılandırabilirsiniz. Şu anda kullanılabilir modlar Kapalı, Otomatik, Düşük ve Yüksek'tir. Varsayılan olarak, bu özellik Yüksek olarak ayarlanır.

Otomatik kazanç denetimi

Arama boyunca tutarlı ses düzeyleri sağlamak için mikrofon ses düzeyini otomatik olarak ayarlayabilirsiniz.

  • Analog otomatik kazanç denetimi, yalnızca bir çağrıdan önce kullanılabilen bir filtredir. Bu filtre varsayılan olarak etkindir.
  • Dijital otomatik kazanç denetimi, yalnızca bir aramadan önce kullanılabilen bir filtredir. Bu filtre varsayılan olarak etkindir.

Müzik modu

Müzik modu, arama öncesinde ve sırasında kullanılabilen bir filtredir. Müzik modu hakkında daha fazla bilgi edinmek için bkz . Yerel Arama SDK'sı üzerinde Müzik modu. Müzik modu yalnızca bire bir veya grup çağrıları üzerinden yerel platformlarda çalışır. Yerel platformlar ile web arasındaki bire bir çağrılarda çalışmaz. Varsayılan olarak, müzik modu devre dışıdır.

Önkoşullar

Sisteminizi ayarlama

Sisteminizi ayarlamak için bu adımları izleyin.

Xcode projesini oluşturma

Xcode'da yeni bir iOS projesi oluşturun ve Tek Görünüm Uygulaması şablonunu seçin. Bu makalede SwiftUI çerçevesi kullanılır, bu nedenle Dil'i Swift olarak ve Arabirim'i SwiftUI olarak ayarlamanız gerekir.

Bu makalede testler oluşturacaksınız. Testleri Dahil Et onay kutusunu temizleyebilirsiniz.

Xcode içinde proje oluşturma penceresini gösteren ekran görüntüsü.

CocoaPods kullanarak paketi ve bağımlılıkları yükleme

  1. Uygulamanız için aşağıdaki örnekte olduğu gibi bir Podfile oluşturun:

    platform :ios, '13.0'
    use_frameworks!
    target 'AzureCommunicationCallingSample' do
        pod 'AzureCommunicationCalling', '~> 1.0.0'
    end
    
  2. pod install'i çalıştırın.

  3. Xcode kullanarak açın .xcworkspace .

Mikrofona erişim isteme

Cihazın mikrofona erişmek için kullanarak uygulamanızın bilgi özellik listesini NSMicrophoneUsageDescriptiongüncelleştirmeniz gerekir. İlişkili değeri, sistemin kullanıcıdan erişim istemek için kullandığı iletişim kutusuna eklenmiş bir dizeye ayarlayın.

Proje ağacının Info.plist girdisine sağ tıklayın ve Kaynak Kodu Olarak>Aç'ı seçin. Üst düzey <dict> bölüme aşağıdaki satırları ekleyin ve dosyayı kaydedin.

<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>

Uygulama çerçevesini ayarlama

Projenizin ContentView.swift dosyasını açın. Kitaplığı içeri aktarmak AzureCommunicationCalling için dosyanın en üstüne bir import bildirim ekleyin. Buna ek olarak, içeri aktar.AVFoundation Koddaki ses izni istekleri için buna ihtiyacınız vardır.

import AzureCommunicationCalling
import AVFoundation

CallAgent'ı başlatma

öğesinden CallClientbir CallAgent örnek oluşturmak için, başlatıldıktan sonra zaman uyumsuz olarak bir nesne döndüren bir CallAgent yöntem kullanmanız callClient.createCallAgent gerekir.

Çağrı istemcisi oluşturmak için bir CommunicationTokenCredential nesne geçirin:

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 Oluşturduğunuz nesneyi öğesine CallClientgeçirin ve görünen adı ayarlayın:

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")
        }
})

Giden sese farklı ses ön işleme seçenekleri uygulamak için ses filtresi özelliğini kullanabilirsiniz. İki tür ses filtresi ve LiveOutgoingAudioFiltersşeklindedirOutgoingAudioFilters. Arama başlamadan önce ayarları değiştirmek için kullanın OutgoingAudioFilters . Arama devam ederken ayarları değiştirmek için kullanın LiveOutgoingAudioFilters .

İlk olarak Arama SDK'sını içeri aktarmanız gerekir:

import AzureCommunicationCalling

Arama başlamadan önce

Arama başladığında uygulayabilirsiniz OutgoingAudioFilters .

Burada gösterildiği gibi bir OutgoingAudioFilters özellik oluşturup içine geçirerek OutgoingAudioOptionsbaşlayın:

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

Çağrı sırasında

Bir arama başladıktan sonra başvurabilirsiniz LiveOutgoingAudioFilters . Çağrı sırasında bu nesneyi çağrı nesnesinden alabilirsiniz. içindeki LiveOutgoingAudioFiltersayarı değiştirmek için sınıfın içindeki üyeleri geçerli bir değere ayarlayın ve uygulanırlar.

Etkin bir çağrı sırasında yalnızca içinden OutgoingAudioFilters kullanılabilen filtrelerin bir alt kümesi kullanılabilir. Bunlar müzik modu, yankı iptali ve gürültü engelleme modu.

LiveOutgoingAudioFilters filters = call.liveOutgoingAudioFilters
filters.musicModeEnabled = true
filters.acousticEchoCancellationEnabled = true
filters.NoiseSuppressionMode = NoiseSuppressionMode.high

Yerel Arama SDK'ları ile ses filtrelerini yapılandırmayı öğrenin

Azure İletişim Hizmetleri ses efektleri, sesli aramanızı geliştirebilecek filtreler sunar. Yerel platformlar (Android, iOS ve Windows) için aşağıdaki filtreleri yapılandırabilirsiniz.

Yankı iptali

Arayanın sesinin hoparlörden yayıldıktan sonra mikrofona geri yankılanmasından kaynaklanan akustik yankıyı ortadan kaldırabilirsiniz. Yankı iptali net bir iletişim sağlar.

Aramadan önce ve çağrı sırasında filtreyi yapılandırabilirsiniz. Yankı iptali özelliğini yalnızca müzik modu etkinse değiştirebilirsiniz. Bu filtre varsayılan olarak etkindir.

Gürültü engelleme

Yazma, klima veya sokak sesleri gibi istenmeyen arka plan seslerini filtreleyerek ses kalitesini geliştirebilirsiniz. Bu teknoloji, daha etkili iletişimi kolaylaştırmak için sesin net ve net olmasını sağlar.

Aramadan önce ve çağrı sırasında filtreyi yapılandırabilirsiniz. Şu anda kullanılabilir modlar Kapalı, Otomatik, Düşük ve Yüksek'tir. Varsayılan olarak, bu özellik Yüksek olarak ayarlanır.

Otomatik kazanç denetimi

Arama boyunca tutarlı ses düzeyleri sağlamak için mikrofon ses düzeyini otomatik olarak ayarlayabilirsiniz.

  • Analog otomatik kazanç denetimi, yalnızca bir çağrıdan önce kullanılabilen bir filtredir. Bu filtre varsayılan olarak etkindir.
  • Dijital otomatik kazanç denetimi, yalnızca bir aramadan önce kullanılabilen bir filtredir. Bu filtre varsayılan olarak etkindir.

Müzik modu

Müzik modu, arama öncesinde ve sırasında kullanılabilen bir filtredir. Müzik modu hakkında daha fazla bilgi edinmek için bkz . Yerel Arama SDK'sı üzerinde Müzik modu. Müzik modu yalnızca bire bir veya grup çağrıları üzerinden yerel platformlarda çalışır. Yerel platformlar ile web arasındaki bire bir çağrılarda çalışmaz. Varsayılan olarak, müzik modu devre dışıdır.

Önkoşullar

Sisteminizi ayarlama

Sisteminizi ayarlamak için bu adımları izleyin.

Visual Studio projesini oluşturma

Evrensel Windows Platformu bir uygulama için Visual Studio 2022'de yeni bir Boş Uygulama (Evrensel Windows) projesi oluşturun. Proje adını girdikten sonra, 10.0.17763.0'dan sonraki bir Windows SDK'sını seçebilirsiniz.

WinUI 3 uygulaması için, tek sayfalı bir WinUI 3 uygulaması ayarlamak için Boş Uygulama, Paketlenmiş (Masaüstünde WinUI 3) şablonuyla yeni bir proje oluşturun. Windows Uygulama SDK'sı sürüm 1.3 veya üzeri gereklidir.

NuGet Paket Yöneticisi kullanarak paketi ve bağımlılıkları yükleme

Arama SDK'sı API'leri ve kitaplıkları bir NuGet paketi aracılığıyla genel kullanıma sunulur.

Arama SDK'sı NuGet paketini bulmak, indirmek ve yüklemek için:

  1. Araçlar>NuGet Paket Yöneticisi Çözüm için NuGet Paketlerini Yönet'i seçerek NuGet Paket Yöneticisi> açın.
  2. Gözat'ı seçin ve arama kutusuna Azure.Communication.Calling.WindowsClient yazın.
  3. Ön sürümü dahil et onay kutusunun seçili olduğundan emin olun.
  4. Azure.Communication.Calling.WindowsClient paketini ve ardından Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 veya daha yeni bir sürümü seçin.
  5. Sağ bölmedeki Azure İletişim Hizmetleri projeye karşılık gelen onay kutusunu seçin.
  6. Yükle'yi seçin.

Giden sese farklı bir ön işleme uygulamak için ses filtresi özelliğini kullanabilirsiniz. İki tür ses filtresi ve LiveOutgoingAudioFiltersşeklindedirOutgoingAudioFilters. Arama başlamadan önce ayarları değiştirmek için kullanın OutgoingAudioFilters . Arama devam ederken ayarları değiştirmek için kullanın LiveOutgoingAudioFilters .

İlk olarak Arama SDK'sını içeri aktarmanız gerekir:

using Azure.Communication;
using Azure.Communication.Calling.WindowsClient;

Arama başlamadan önce

Arama başladığında uygulayabilirsiniz OutgoingAudioFilters .

Aşağıdaki kodda gösterildiği gibi bir OutgoingAudioFilters özellik oluşturup içine geçirerek OutgoingAudioOptionsbaşlayın:

var outgoingAudioOptions = new OutgoingAudioOptions();
var filters = new OutgoingAudioFilters()
{
    AnalogAutomaticGainControlEnabled = true,
    DigitalAutomaticGainControlEnabled = true,
    MusicModeEnabled = true,
    AcousticEchoCancellationEnabled = true,
    NoiseSuppressionMode = NoiseSuppressionMode.High
};
outgoingAudioOptions.Filters = filters;

Çağrı sırasında

Bir arama başladıktan sonra başvurabilirsiniz LiveOutgoingAudioFilters . Çağrı başladıktan sonra bu nesneyi çağrı nesnesinden alabilirsiniz. içindeki LiveOutgoingAudioFiltersayarı değiştirmek için sınıfın içindeki üyeleri geçerli bir değere ayarlayın ve uygulanırlar.

Etkin bir çağrı sırasında yalnızca içinden OutgoingAudioFilters kullanılabilen filtrelerin bir alt kümesi kullanılabilir. Bunlar müzik modu, yankı iptali ve gürültü engelleme modu.

LiveOutgoingAudioFilters filter = call.LiveOutgoingAudioFilters;
filter.MusicModeEnabled = true;
filter.AcousticEchoCancellationEnabled = true;
filter.NoiseSuppressionMode = NoiseSuppressionMode.Auto;