Wyświetlanie stanu transkrypcji wywołań na kliencie
Uwaga
Stan transkrypcji połączeń jest dostępny tylko w przypadku spotkań usługi Teams. Obecnie nie ma obsługi stanu transkrypcji połączeń dla wywołań usług Azure Communication Services do usług Azure Communication Services.
Korzystając z transkrypcji wywołań, możesz poinformować użytkowników, że jest transkrypcja wywołania. Oto, jak to zrobić.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Wdrożony zasób usług komunikacyjnych. Utwórz zasób usług komunikacyjnych.
- Token dostępu użytkownika umożliwiający włączenie klienta wywołującego. Aby uzyskać więcej informacji, zobacz Tworzenie tokenów dostępu i zarządzanie nimi.
- Opcjonalnie: ukończ przewodnik Szybki start, aby dodać połączenie głosowe do aplikacji
Instalacja zestawu SDK
Znajdź plik build.gradle na poziomie projektu i dodaj mavenCentral()
go do listy repozytoriów w obszarze buildscript
i allprojects
:
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Następnie w pliku build.gradle na poziomie modułu dependencies
dodaj następujące wiersze do sekcji:
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
Inicjowanie wymaganych obiektów
Aby utworzyć CallAgent
wystąpienie, należy wywołać createCallAgent
metodę w wystąpieniu CallClient
. To wywołanie asynchroniczne zwraca CallAgent
obiekt wystąpienia.
Metoda createCallAgent
przyjmuje CommunicationUserCredential
jako argument, który hermetyzuje token dostępu.
Aby uzyskać dostęp, DeviceManager
należy najpierw utworzyć callAgent
wystąpienie. Następnie możesz użyć metody , aby pobrać metodę 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();
Aby ustawić nazwę wyświetlaną elementu wywołującego, użyj tej alternatywnej metody:
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();
Ostrzeżenie
Do wersji 1.1.0 i beta w wersji 1.1.0-beta.1 usługi Azure Communication Services wywołujących zestaw Android SDK ma isTranscriptionActive
element i addOnIsTranscriptionActiveChangedListener
jest częścią Call
obiektu . W przypadku nowych wersji beta te interfejsy API zostały przeniesione jako rozszerzona funkcja podobna do opisanej Call
poniżej.
Transkrypcja wywołań jest rozszerzoną funkcją obiektu podstawowego Call
. Najpierw należy uzyskać obiekt funkcji transkrypcji:
TranscriptionCallFeature callTranscriptionFeature = call.feature(Features.TRANSCRIPTION);
Następnie, aby sprawdzić, czy wywołanie jest transkrybowane, sprawdź isTranscriptionActive
właściwość callTranscriptionFeature
. Zwraca wartość boolean
.
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
Możesz również subskrybować zmiany w transkrypcji:
private void handleCallOnIsTranscriptionChanged(PropertyChangedEvent args) {
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
}
callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);
Konfigurowanie systemu
Tworzenie projektu Xcode
W programie Xcode utwórz nowy projekt systemu iOS i wybierz szablon Aplikacja z jednym widokiem. W tym przewodniku Szybki start jest używana struktura SwiftUI, dlatego należy ustawić wartość Language na Swift i ustawić wartość Interface (Interfejs ) na SwiftUI.
Podczas pracy z tym przewodnikiem Szybki start nie utworzysz testów. Możesz wyczyścić pole wyboru Uwzględnij testy .
Instalowanie pakietu i zależności przy użyciu narzędzia CocoaPods
Utwórz plik Podfile dla aplikacji, podobnie jak w tym przykładzie:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
Uruchom program
pod install
.Otwórz
.xcworkspace
za pomocą programu Xcode.
Żądanie dostępu do mikrofonu
Aby uzyskać dostęp do mikrofonu urządzenia, należy zaktualizować listę właściwości informacji aplikacji przy użyciu polecenia NSMicrophoneUsageDescription
. Skojarzona wartość zostanie ustawiona na ciąg, który zostanie uwzględniony w oknie dialogowym używanym przez system do żądania dostępu od użytkownika.
Kliknij prawym przyciskiem myszy wpis Info.plist drzewa projektu, a następnie wybierz pozycję Otwórz jako>kod źródłowy. Dodaj następujące wiersze w sekcji najwyższego poziomu <dict>
, a następnie zapisz plik.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
Konfigurowanie struktury aplikacji
Otwórz plik ContentView.swift projektu. Dodaj deklarację import
na początku pliku, aby zaimportować bibliotekę AzureCommunicationCalling
. Ponadto zaimportuj plik AVFoundation
. Będą potrzebne żądania uprawnień dźwięku w kodzie.
import AzureCommunicationCalling
import AVFoundation
Inicjowanie klasy CallAgent
Aby utworzyć CallAgent
wystąpienie z CallClient
klasy , należy użyć callClient.createCallAgent
metody, która asynchronicznie zwraca CallAgent
obiekt po zainicjowaniu.
Aby utworzyć klienta wywołania, przekaż CommunicationTokenCredential
obiekt:
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
Przekaż utworzony obiekt do CallClient
, a następnie ustaw nazwę wyświetlaną:
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")
}
})
Ostrzeżenie
Do wersji 1.1.0 i beta w wersji 1.1.0-beta.1 zestawu AZURE Communication Services Calling iOS SDK jest isTranscriptionActive
częścią obiektu i didChangeTranscriptionState
jest częścią Call
delegataCallDelegate
. W przypadku nowych wersji beta te interfejsy API zostały przeniesione jako rozszerzona funkcja podobna do opisanej Call
poniżej.
Transkrypcja wywołań jest rozszerzoną funkcją obiektu podstawowego Call
. Najpierw należy uzyskać obiekt funkcji transkrypcji:
let callTranscriptionFeature = call.feature(Features.transcription)
Następnie, aby sprawdzić, czy wywołanie jest transkrypowane, sprawdź isTranscriptionActive
właściwość callTranscriptionFeature
. Zwraca wartość Bool
.
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;
Możesz również subskrybować zmiany transkrypcji, implementując TranscriptionCallFeatureDelegate
delegata w klasie za pomocą zdarzenia didChangeTranscriptionState
:
callTranscriptionFeature.delegate = self
// didChangeTranscriptionState is a member of TranscriptionCallFeatureDelegate
public func transcriptionCallFeature(_ transcriptionCallFeature: TranscriptionCallFeature, didChangeTranscriptionState args: PropertyChangedEventArgs) {
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive
}
Konfigurowanie systemu
Tworzenie projektu programu Visual Studio
W przypadku aplikacji platformy UWP w programie Visual Studio 2022 utwórz nowy projekt Pusta aplikacja (uniwersalny system Windows). Po wprowadzeniu nazwy projektu możesz wybrać dowolny zestaw Windows SDK nowszy niż 10.0.17763.0.
W przypadku aplikacji WinUI 3 utwórz nowy projekt z pustą aplikacją, spakowanym szablonem (WinUI 3 w programie Desktop), aby skonfigurować jednostronicową aplikację WinUI 3. Wymagany jest zestaw Windows App SDK w wersji 1.3 lub nowszej.
Instalowanie pakietu i zależności przy użyciu Menedżer pakietów NuGet
Interfejsy API i biblioteki zestawu SDK wywołujących są publicznie dostępne za pośrednictwem pakietu NuGet.
W poniższych krokach przedstawiono sposób znajdowania, pobierania i instalowania pakietu NuGet zestawu SDK wywołującego:
- Otwórz Menedżer pakietów NuGet, wybierając pozycję Narzędzia>NuGet Menedżer pakietów> Zarządzanie pakietami NuGet dla rozwiązania.
- Wybierz pozycję Przeglądaj, a następnie wprowadź
Azure.Communication.Calling.WindowsClient
ciąg w polu wyszukiwania. - Upewnij się, że pole wyboru Uwzględnij wersję wstępną jest zaznaczone.
Azure.Communication.Calling.WindowsClient
Wybierz pakiet, a następnie wybierzAzure.Communication.Calling.WindowsClient
wersję 1.4.0-beta.1 lub nowszą.- Zaznacz pole wyboru odpowiadające projektowi Usług komunikacyjnych na karcie po prawej stronie.
- Wybierz przycisk Zainstaluj.
Transkrypcja wywołań jest rozszerzoną funkcją obiektu podstawowego Call
. Najpierw należy uzyskać obiekt funkcji transkrypcji:
TranscriptionCallFeature transcriptionFeature = call.Features.Transcription;
Następnie, aby sprawdzić, czy wywołanie jest transkrybowane, sprawdź IsTranscriptionActive
właściwość transcriptionFeature
. Zwraca wartość boolean
.
boolean isTranscriptionActive = transcriptionFeature.isTranscriptionActive;
Możesz również subskrybować zmiany w transkrypcji:
private async void Call__OnIsTranscriptionActiveChanged(object sender, PropertyChangedEventArgs args)
boolean isTranscriptionActive = transcriptionFeature.IsTranscriptionActive();
}
transcriptionFeature.IsTranscriptionActiveChanged += Call__OnIsTranscriptionActiveChanged;
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla