Hantera ljudfilter

Lär dig hur du hanterar funktioner för ljudbearbetning med Azure Communication Services SDKS. Du lär dig hur du använder olika ljudfunktioner före och under samtal med hjälp av ljudfilter.

För närvarande finns det fem olika filter att styra.

Analog automatisk gain-kontroll

Analog automatisk gain-kontroll är ett filter som är tillgängligt före ett anrop. Som standard är det här filtret aktiverat.

Digital automatisk vinstkontroll

Digital automatisk kontroll är ett filter som är tillgängligt före ett anrop. Som standard är det här filtret aktiverat.

Musikläge

Musikläge är ett filter som är tillgängligt före och under ett anrop. Läs mer om musikläge här. Observera att musikläget endast fungerar i 1:1-anrop på interna plattformar och gruppsamtal. För närvarande fungerar inte musikläget i 1:1-anrop mellan inbyggt och webb. Som standard är musikläget inaktiverat.

Ekoreducering

Ekoreducering är ett filter som är tillgängligt före och under ett anrop. Du kan bara växla ekoreducering om musikläget är aktiverat. Som standard är det här filtret aktiverat.

Brusreducering

Brusdämpning är ett filter som är tillgängligt före och under ett anrop. De lägen som är tillgängliga för närvarande är Off, Auto, Lowoch High. Som standard är den här funktionen inställd på High läge.

Förutsättningar

Installera SDK:n

Leta upp filen build.gradle på projektnivå och lägg till mavenCentral() i listan med lagringsplatser under buildscript och allprojects:

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

I filen build.gradle på modulnivå lägger du sedan till följande rader i dependencies avsnittet:

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

Initiera nödvändiga objekt

Om du vill skapa en CallAgent instans måste du anropa createCallAgent metoden på en CallClient instans. Det här anropet returnerar asynkront ett CallAgent instansobjekt.

Metoden createCallAgent tar CommunicationUserCredential som ett argument som kapslar in en åtkomsttoken.

Om du vill komma åt DeviceManagermåste du skapa en callAgent instans först. Sedan kan du använda CallClient.getDeviceManager metoden för att hämta 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();

Om du vill ange ett visningsnamn för anroparen använder du den här alternativa metoden:

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

Med funktionen för ljudfilter kan du använda olika ljudförbearbetningar på utgående ljud. Det finns två typer av ljudfilter: OutgoingAudioFilters och LiveOutgoingAudioFilters. Använd OutgoingAudioFilters för att ändra inställningarna innan anropet startar och LiveOutgoingAudioFilters för att ändra inställningarna medan ett anrop pågår.

Du måste först importera den anropande SDK:n och de associerade klasserna:

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

Innan samtalet startar

OutgoingAudioFilters kan tillämpas när ett anrop startas.

Börja med att skapa en OutgoingAudioFilters och skicka den till OutgoingAudioOptions enligt följande kod:

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

Under samtalet

Du kan använda LiveOutgoingAudioFilters när ett anrop har startats Du kan hämta det här objektet från anropsobjektet när anropet börjar. Om du vill ändra inställningen i LiveOutgoingAudioFiltersanger du medlemmarna i klassen till ett giltigt värde och de tillämpas.

Endast en delmängd av filtren som är tillgängliga från OutgoingAudioFilters är tillgängliga under ett aktivt anrop: musikläge, ekoreducering och brusreduceringsläge.

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

Konfigurera systemet

Skapa Xcode-projektet

I Xcode skapar du ett nytt iOS-projekt och väljer mallen Enkel vyapp . Den här snabbstarten använder SwiftUI-ramverket, så du bör ange Language till Swift och ange Gränssnitt till SwiftUI.

Du kommer inte att skapa tester under den här snabbstarten. Avmarkera kryssrutan Inkludera tester .

Skärmbild som visar fönstret för att skapa ett projekt i Xcode.

Installera paketet och beroenden med hjälp av CocoaPods

  1. Skapa en Podfile för ditt program, som i det här exemplet:

    platform :ios, '13.0'
    use_frameworks!
    target 'AzureCommunicationCallingSample' do
        pod 'AzureCommunicationCalling', '~> 1.0.0'
    end
    
  2. Kör pod install.

  3. Öppna .xcworkspace med Xcode.

Begär åtkomst till mikrofonen

För att få åtkomst till enhetens mikrofon måste du uppdatera appens egenskapslista för information med hjälp NSMicrophoneUsageDescriptionav . Du anger det associerade värdet till en sträng som ska ingå i dialogrutan som systemet använder för att begära åtkomst från användaren.

Högerklicka på posten Info.plist i projektträdet och välj sedan Öppna som>källkod. Lägg till följande rader i avsnittet på den översta nivån <dict> och spara sedan filen.

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

Konfigurera appramverket

Öppna projektets ContentView.swift-fil . Lägg till en import deklaration överst i filen för att importera AzureCommunicationCalling biblioteket. Importera dessutom AVFoundation. Du behöver den för begäranden om ljudbehörighet i koden.

import AzureCommunicationCalling
import AVFoundation

Initiera CallAgent

Om du vill skapa en CallAgent instans från CallClientmåste du använda en callClient.createCallAgent metod som asynkront returnerar ett CallAgent objekt när det har initierats.

Skicka ett CommunicationTokenCredential objekt för att skapa en anropsklient:

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

Skicka objektet CommunicationTokenCredential som du skapade till CallClientoch ange visningsnamnet:

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

Med funktionen för ljudfilter kan du använda olika ljudförbearbetningar på utgående ljud. Det finns två typer av ljudfilter: OutgoingAudioFilters och LiveOutgoingAudioFilters. Använd OutgoingAudioFilters för att ändra inställningarna innan anropet startar och LiveOutgoingAudioFilters för att ändra inställningarna medan ett anrop pågår.

Du måste först importera den anropande SDK:n:

import AzureCommunicationCalling

Innan samtalet startar

OutgoingAudioFilters kan tillämpas när ett anrop startas.

Börja med att skapa en OutgoingAudioFilters och skicka den till OutgoingAudioOptions enligt följande kod:

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

Under samtalet

Du kan använda LiveOutgoingAudioFilters när ett anrop har startats Du kan hämta det här objektet från anropsobjektet när anropet börjar. Om du vill ändra inställningen i LiveOutgoingAudioFiltersanger du medlemmarna i klassen till ett giltigt värde och de tillämpas.

Endast en delmängd av filtren som är tillgängliga från OutgoingAudioFilters är tillgängliga under ett aktivt anrop: musikläge, ekoreducering och brusreduceringsläge.

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

Konfigurera systemet

Skapa Visual Studio-projektet

För en UWP-app i Visual Studio 2022 skapar du ett nytt projekt för Tom app (Universell Windows). När du har angett projektnamnet kan du välja valfri Windows SDK senare än 10.0.17763.0.

För en WinUI 3-app skapar du ett nytt projekt med mallen Tom app, Paketerad (WinUI 3 i Desktop) för att konfigurera en WinUI 3-app med en enda sida. SDK för Windows-appar version 1.3 eller senare krävs.

Installera paketet och beroendena med hjälp av NuGet Package Manager

Anropande SDK-API:er och bibliotek är offentligt tillgängliga via ett NuGet-paket.

Följande steg illustrerar hur du hittar, laddar ned och installerar NuGet-paketet Calling SDK:

  1. Öppna NuGet Package Manager genom att välja Verktyg>NuGet Package Manager>Hantera NuGet-paket för lösning.
  2. Välj Bläddra och ange Azure.Communication.Calling.WindowsClient sedan i sökrutan.
  3. Kontrollera att kryssrutan Inkludera förhandsversion är markerad.
  4. Välj paketet Azure.Communication.Calling.WindowsClient och välj Azure.Communication.Calling.WindowsClientsedan 1.4.0-beta.1 eller en nyare version.
  5. Markera kryssrutan som motsvarar Communication Services-projektet på den högra fliken.
  6. Välj knappen Installera.

Med funktionen för ljudfilter kan du använda olika ljudförbearbetningar på utgående ljud. Det finns två typer av ljudfilter: OutgoingAudioFilters och LiveOutgoingAudioFilters. Använd OutgoingAudioFilters för att ändra inställningarna innan anropet startar och LiveOutgoingAudioFilters för att ändra inställningarna medan ett anrop pågår.

Du måste först importera den anropande SDK:n:

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

Innan samtalet startar

OutgoingAudioFilters kan tillämpas när ett anrop startas.

Börja med att skapa en OutgoingAudioFilters och skicka den till OutgoingAudioOptions enligt följande kod:

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

Under samtalet

Du kan använda LiveOutgoingAudioFilters när ett anrop har startats Du kan hämta det här objektet från anropsobjektet när anropet börjar. Om du vill ändra inställningen i LiveOutgoingAudioFiltersanger du medlemmarna i klassen till ett giltigt värde och de tillämpas.

Endast en delmängd av filtren som är tillgängliga från OutgoingAudioFilters är tillgängliga under ett aktivt anrop: musikläge, ekoreducering och brusreduceringsläge.

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

Nästa steg