Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Biblioteka interfejsu użytkownika usług Azure Communication Services oferuje opcję dołączenia do rozmowy bez przechodzenia przez ekran konfiguracji. Umożliwia deweloperom tworzenie aplikacji komunikacyjnej w sposób umożliwiający użytkownikom bezpośrednie dołączanie do wywołania bez interakcji z użytkownikiem. Funkcja zapewnia również możliwość skonfigurowania domyślnego stanu aparatu i mikrofonu (włączonego lub wyłączonego), zanim użytkownicy dołączą do połączenia.
Z tego artykułu dowiesz się, jak poprawnie skonfigurować funkcję w aplikacji.
Wymagania wstępne
- Konto 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łania. Uzyskiwanie tokenu dostępu użytkownika.
- Opcjonalnie: ukończenie podręcznika szybkiego startu dotyczącego rozpoczęcia pracy z komponentami biblioteki UI.
Konfigurowanie funkcji
Aby uzyskać więcej informacji, zobacz bibliotekę interfejsu użytkownika systemu Android typu open source i przykładowy kod aplikacji.
Opcja pominięcia ekranu konfiguracji
CallCompositeLocalOptions to opakowanie opcji, które ustawia zdolność biblioteki interfejsu użytkownika do pominięcia ekranu konfiguracji za pomocą wartości logicznej. Domyślnie możliwość pominięcia ekranu konfiguracji jest ustawiona na wartość false. Musisz ustawić skipSetupScreen przy użyciu wartości logicznej true, aby umożliwić pominięcie ekranu konfiguracji.
Zalecamy stworzenie aplikacji w taki sposób, aby gdy użytkownik spróbuje dołączyć do rozmowy, uprawnienia do mikrofonu były już przyznane, co zapewni bezproblemowe dołączenie.
Aby użyć tej funkcji, przekaż wartość logiczną skipSetupScreen do CallCompositeLocalOptions i wstrzyknij ją do elementu callComposite.launch.
import com.azure.android.communication.ui.calling.models.CallCompositeLocalOptions
val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
.setSkipSetupScreen(true)
callComposite.launch(callLauncherActivity, remoteOptions, localOptions)
Domyślne opcje konfiguracji aparatu i mikrofonu
Domyślnie ekran konfiguracji udostępnia użytkownikom opcję konfigurowania ustawień aparatu i mikrofonu przed dołączeniem do połączenia. Po ustawieniu pomijania ekranu konfiguracji, aby dołączyć do połączenia, użytkownicy nie mają tej opcji, dopóki nie dołączą do połączenia.
Możesz przekazać wartość logiczną z cameraOn i microphoneOn, aby włączyć lub wyłączyć kamerę i mikrofon, zanim użytkownicy dołączą do połączenia. Funkcjonalność kontrolowania domyślnego stanu aparatu i mikrofonu nie ma wpływu na to, jeśli użytkownik udziela uprawnień dla każdego z nich.
Domyślnie zarówno cameraOn, jak i microphoneOn są ustawione na false. Możesz korzystać z tej funkcji nawet w domyślnym środowisku dołączania do połączeń oferowanym przez bibliotekę UI. W takim przypadku aparat i mikrofon są włączone lub wyłączone na ekranie konfiguracji zgodnie z ustawioną konfiguracją.
Aby ustawić domyślny stan aparatu i mikrofonu, przekaż wartość logiczną wraz z cameraOn i microphoneOn do CallCompositeLocalOptions i wstrzyknij ją do callComposite.launch elementu.
import com.azure.android.communication.ui.calling.models.CallCompositeLocalOptions
val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
.setMicrophoneOn(true)
.setCameraOn(true)
callComposite.launch(callLauncherActivity, remoteOptions, localOptions)
Obsługa uprawnień
Zalecamy, aby umożliwić użytkownikom dołączanie do połączenia z przyznanymi uprawnieniami dla mikrofonu i kamery, co pozwala na pominięcie ekranu konfiguracji przy użyciu domyślnych API konfiguracji dla mikrofonu i kamery. Jeśli nie obsłużysz uprawnień użytkownika, biblioteka interfejsu użytkownika podejmie próbę ich obsługi.
Użytkownicy muszą włączyć uprawnienia do mikrofonu, aby dołączyć do połączenia. Jeśli użytkownicy próbują dołączyć do połączenia po odmowie udzielenia uprawnień do mikrofonu, biblioteka interfejsu użytkownika anuluje połączenie na etapie łączenia i zgłasza błąd z kodem CallCompositeErrorCode.MICROPHONE_PERMISSION_NOT_GRANTED.
Jednak użytkownicy mogą dołączyć do połączenia, nawet jeśli odmawiają uprawnień do aparatu. Biblioteka UI wyłącza funkcję aparatu, gdy dostęp do aparatu jest odmówiony. Tak więc domyślny interfejs API konfiguracji aparatu nie ma wpływu na doświadczenie użytkownika podczas rozmowy. Użytkownicy mogą cieszyć się efektem API domyślnej konfiguracji ustawień aparatu po udzieleniu uprawnień do aparatu.
Zalecamy obsługę uprawnień mikrofonu. Jeśli użytkownicy dołączają do połączenia z kamerą włączoną domyślnie, zalecamy również zarządzanie uprawnieniami kamery.
Błędy sieci
Jeśli podczas rozmowy wystąpi zakłócenie sieci lub połączenie zostanie przerwane, biblioteka interfejsu użytkownika zostanie zamknięta i zgłosi błąd z kodem CallCompositeErrorCode.CALL_END_FAILED.
Jeśli użytkownik nie ma połączenia sieciowego i spróbuje dołączyć do rozmowy po pominięciu ekranu konfiguracji, biblioteka interfejsu użytkownika zostanie zamknięta na etapie łączenia rozmowy i wywoła błąd o kodzie CallCompositeErrorCode.NETWORK_CONNECTION_NOT_AVAILABLE. Aby uniknąć tego błędu, zalecamy skonfigurowanie aplikacji tak, aby sprawdzić dostępność sieci przed rozpoczęciem rozmowy przez użytkowników.
Aby odbierać zdarzenia błędów, wywołaj setOnErrorHandler z CallComposite.
Do programu obsługi błędów mogą zostać wysłane następujące error wartości:
microphonePermissionNotGrantednetworkConnectionNotAvailable
Aby uzyskać więcej informacji, zobacz bibliotekę interfejsu użytkownika systemu iOS typu open source i przykładowy kod aplikacji.
Opcja pominięcia ekranu konfiguracji
LocalOptions to opakowanie opcji, które ustawia zdolność biblioteki interfejsu użytkownika do pominięcia ekranu konfiguracji za pomocą wartości logicznej. Domyślnie możliwość pominięcia ekranu konfiguracji jest ustawiona na wartość false. Musisz ustawić skipSetupScreen przy użyciu wartości logicznej true, aby umożliwić pominięcie ekranu konfiguracji.
Zalecamy stworzenie aplikacji w taki sposób, aby gdy użytkownik spróbuje dołączyć do rozmowy, uprawnienia do mikrofonu były już przyznane, co zapewni bezproblemowe dołączenie.
Aby użyć tej funkcji, przekaż wartość logiczną skipSetupScreen do LocalOptions i wstrzyknij ją do elementu callComposite.launch.
let localOptions = LocalOptions(skipSetupScreen: true)
callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)
Domyślne opcje konfiguracji aparatu i mikrofonu
Domyślnie ekran konfiguracji udostępnia użytkownikom opcję konfigurowania ustawień aparatu i mikrofonu przed dołączeniem do połączenia. Po ustawieniu pomijania ekranu konfiguracji, aby dołączyć do połączenia, użytkownicy nie mają tej opcji, dopóki nie dołączą do połączenia.
Możesz przekazać wartość logiczną z cameraOn i microphoneOn, aby włączyć lub wyłączyć kamerę i mikrofon, zanim użytkownicy dołączą do połączenia. Funkcjonalność kontrolowania domyślnego stanu aparatu i mikrofonu nie ma wpływu na to, jeśli użytkownik udziela uprawnień dla każdego z nich.
Domyślnie zarówno cameraOn, jak i microphoneOn są ustawione na false. Możesz korzystać z tej funkcji nawet w domyślnym środowisku dołączania do połączeń oferowanym przez bibliotekę UI. W takim przypadku aparat i mikrofon są włączone lub wyłączone na ekranie konfiguracji zgodnie z ustawioną konfiguracją.
Aby ustawić domyślny stan aparatu i mikrofonu, przekaż wartość logiczną wraz z cameraOn i microphoneOn do LocalOptions i wstrzyknij ją do callComposite.launch elementu.
let localOptions = LocalOptions(cameraOn: true, microphoneOn: true)
callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)
Obsługa uprawnień
Zalecamy, aby umożliwić użytkownikom dołączanie do połączenia z przyznanymi uprawnieniami dla mikrofonu i kamery, co pozwala na pominięcie ekranu konfiguracji przy użyciu domyślnych API konfiguracji dla mikrofonu i kamery. Jeśli nie obsłużysz uprawnień użytkownika, biblioteka interfejsu użytkownika podejmie próbę ich obsługi.
Użytkownicy muszą włączyć uprawnienia do mikrofonu, aby dołączyć do połączenia. Jeśli użytkownicy spróbują dołączyć do połączenia po odmówiwszy uprawnień do mikrofonu, biblioteka interfejsu użytkownika anuluje połączenie na etapie łączenia i zgłasza microphonePermissionNotGranted błąd.
Jednak użytkownicy mogą dołączyć do połączenia, nawet jeśli odmawiają uprawnień do aparatu. Biblioteka UI wyłącza funkcję aparatu, gdy dostęp do aparatu jest odmówiony. Tak więc domyślny interfejs API konfiguracji aparatu nie ma wpływu na doświadczenie użytkownika podczas rozmowy. Użytkownicy mogą cieszyć się efektem API domyślnej konfiguracji ustawień aparatu po udzieleniu uprawnień do aparatu.
Zalecamy obsługę uprawnień mikrofonu. Jeśli użytkownicy dołączają do połączenia z kamerą włączoną domyślnie, zalecamy również zarządzanie uprawnieniami kamery.
Błędy sieci
Jeśli podczas rozmowy wystąpi zakłócenie sieci lub rozmowa zostanie przerwana, biblioteka UI zostanie zamknięta i zgłosi callEndFailed błąd.
Jeśli użytkownik nie ma połączenia sieciowego i spróbuje dołączyć do rozmowy po pominięciu ekranu konfiguracji, biblioteka interfejsu użytkownika zostaje zamknięta na etapie nawiązywania połączenia i zgłasza networkConnectionNotAvailable błąd. Aby uniknąć tego błędu, zalecamy skonfigurowanie aplikacji tak, aby sprawdzić dostępność sieci przed rozpoczęciem rozmowy przez użytkowników.
Można zaimplementować zamknięcia, aby działać na zdarzeniach złożonych. W poniższym przykładzie pokazano zdarzenie błędu dla nieudanego kompozytu.
callComposite?.events.onError = { error in
print("CallComposite failed with error:\(error)")
}
Do programu obsługi błędów mogą zostać wysłane następujące error wartości:
microphonePermissionNotGrantednetworkConnectionNotAvailable