A hívásátírás állapotának megjelenítése az ügyfélen

Fontos

A jelen dokumentumban ismertetett funkciók jelenleg nyilvános előzetes verzióban érhetőek el. Ez az előzetes verzió szolgáltatói szerződés nélkül érhető el, és nem ajánlott éles számítási feladatokhoz. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

A hívásátírás használata esetén előfordulhat, hogy tudatni szeretné a felhasználókkal, hogy egy hívás átírása folyamatban van. Ezt a következőképp végezheti el.

Előfeltételek

Az SDK telepítése

Keresse meg a build.gradle projektszintűt, és mindenképpen adja hozzá a et a és a mavenCentral() adattárak buildscript listájához allprojects

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

Ezután a build.gradle modulszinten adja hozzá a következő sorokat a dependencies szakaszhoz

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

A szükséges objektumok inicializálása

Példány CallAgent létrehozásához meg kell hívnia a createCallAgent metódust egy CallClient példányon. Ez aszinkron módon egy CallAgent példányobjektumot ad vissza. A metódus egy argumentumot vesz fel, amely beágyaz egy hozzáférési createCallAgent CommunicationUserCredential jogkivonatot. A eléréséhez először létre kell hoznunk egy callAgent példányt, majd a metódussal lekértük DeviceManager CallClient.getDeviceManager a DeviceManager eszközt.

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 hívó megjelenítendő nevének beállítását ezzel az alternatív módszerrel állíthatja be:

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

Figyelmeztetés

Az 1.1.0-s és a bétaverzió 1.1.0-beta.1-es verziójáig az Android SDK-t hívó ACS rendelkezik a és a isTranscriptionActive addOnIsTranscriptionActiveChangedListener Call objektummal. Az új bétaverziós kiadásokban ezek az API-k az alább leírt módon a kiterjesztett Call funkciójaként helyezték át őket.

Megjegyzés

Ez az API fejlesztői előzetes verzióként szolgál, és a kapott visszajelzések alapján változhat. Ne használja ezt az API-t éles környezetben. Az API használatának lépéseként használja az Android SDK-t hívó ACS bétaverziós kiadását

A hívásátírás az alapvető API kibővített Call funkciója. Először be kell szereznie az átírási funkció API-objektumát:

TranscriptionFeature callTranscriptionFeature = call.api(TranscriptionFeature.class);

Ezután annak ellenőrzéshez, hogy a hívás átírása folyamatban van-e, vizsgálja meg isTranscriptionActive a callTranscriptionFeature tulajdonságát. A értéket adja boolean vissza.

boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();

Feliratkozhat az átírás változásaira is:

private void handleCallOnIsTranscriptionChanged(PropertyChangedEvent args) {
    boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
}

callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);

A rendszer beállítása

Az Xcode-projekt létrehozása

Az Xcode-ban hozzon létre egy új iOS-projektet, és válassza az Egynézetes alkalmazás sablont. Ez a rövid útmutató a SwiftUI keretrendszert használja,ezért a Language (Nyelv) beállítása Swift, a Felhasználói felület SwiftUI ( SwiftUI) lesz.

Ebben a rövid útmutatóban nem fog egységteszteket vagy felhasználói felületi teszteket létrehozni. Nyugodtan törölje az Include Unit Tests (Egységtesztek és felhasználói felületi tesztek is) szövegmezők jelölőnégyzetét.

Képernyőkép a projekt Xcode-on belüli létrehozására vonatkozó ablakról.

A csomag és a függőségek telepítése a CocoaPods alkalmazással

  1. Hozzon létre egy podfájlt az alkalmazáshoz az alábbihoz hasonlóan:

    platform :ios, '13.0'
    use_frameworks!
    target 'AzureCommunicationCallingSample' do
        pod 'AzureCommunicationCalling', '~> 1.0.0'
    end
    
  2. Futtassa az pod install parancsot.

  3. Nyissa meg .xcworkspace az Xcode-kódot.

Hozzáférés kérése a mikrofonhoz

Az eszköz mikrofonját úgy tudja elérni, ha frissíti az alkalmazás információs tulajdonságlistát a következővel: NSMicrophoneUsageDescription . A társított értéket egy értékre kell állítania, amely megjelenik a párbeszédpanelen, amikor a rendszer hozzáférést kér string a felhasználótól.

Kattintson a jobb gombbal Info.plist a projektfa bejegyzésére, és válassza a Megnyitás > forráskódként lehetőséget. Adja hozzá a következő sorokat a legfelső szintű <dict> szakaszhoz, majd mentse a fájlt.

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

Az alkalmazás-keretrendszer beállítása

Nyissa meg a projekt ContentView.swift fájlját, és adjon hozzá egy deklarációt a fájl tetejéhez a import kódtár AzureCommunicationCalling importálásához. Továbbá importálja a következőt: AVFoundation . Szüksége lesz rá a kódban a hangengedély-kérelmekhez.

import AzureCommunicationCalling
import AVFoundation

CallAgent inicializálása

Példány létrehozásához a-ból olyan metódust kell használnia, amely aszinkron módon ad vissza objektumot az CallAgent CallClient callClient.createCallAgent CallAgent inicializálása után.

A hívási ügyfél létrehozásához át kell adni egy CommunicationTokenCredential objektumot.

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

Adja át CommunicationTokenCredential a létrehozott objektumot a következőnek: , és állítsa be a CallClient megjelenítendő nevet.

self.callClient = CallClient()
let callAgentOptions = CallAgentOptions()
options.displayName = " iOS ACS 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")
        }
})

Figyelmeztetés

Az 1.1.0-s és a bétaverzió 1.1.0-beta.1-es verziójáig az iOS SDK-t hívó ACS-hívás a objektum része, és delegált. isTranscriptionActive Call didChangeTranscriptionState CallDelegate Az új bétaverziós kiadásokban ezek az API-k az alább leírt módon a kiterjesztett Call funkciójaként helyezték át őket.

Megjegyzés

Ez az API fejlesztői előzetes verzióként szolgál, és a kapott visszajelzések alapján változhat. Ne használja ezt az API-t éles környezetben. Az API használatának lépéseként használja az iOS SDK-t hívó ACS bétaverziós kiadását

A hívásátírás az alapvető API kibővített Call funkciója. Először be kell szereznie az átírási funkció API-objektumát:

let callTranscriptionFeature = call.api(TranscriptionFeature.self)

Ezután annak ellenőrzéshez, hogy a hívás át van-e írva, vizsgálja meg isTranscriptionActive a callTranscriptionFeature tulajdonságát. A értéket adja Bool vissza.

let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;

Az átírási módosításokra úgy is feliratkozhat, hogy delegáltat hoz az TranscriptionFeatureDelegate osztályra az eseménysel: didChangeTranscriptionState

callTranscriptionFeature.delegate = self

// didChangeTranscriptionState is a member of TranscriptionFeatureDelegate
public func transcriptionFeature(_ transcriptionFeature: TranscriptionFeature, didChangeTranscriptionState args: PropertyChangedEventArgs) {
    let isTranscriptionActive = transcriptionFeature.isTranscriptionActive
}

Következő lépések