Sortie audio pour les appels (Android)
Pour permettre une commutation fluide de la sortie audio au sein de votre application, vous devrez intégrer le framework Telecom d'Android. Telecom permet à votre application de gérer efficacement les services d'appel, garantissant ainsi une expérience utilisateur fluide. Veuillez vous reporter à la documentation officielle d'Android sur Telecom. ici.
Intégration des télécommunications
Pour obtenir des conseils détaillés sur l'intégration du cadre « Telecom » à votre projet, veuillez consulter Intégration des télécommunications.
Observation des modifications de la sortie audio
Vous pouvez vous abonner à la méthode de délégation onCallAudioStateChanged ou onCallEndpointChanged pour observer les modifications apportées à la sortie audio.
Voici comment procéder :
Pour Android API 33 et versions antérieures
override fun onCallAudioStateChanged(state: CallAudioState?) {
state ?: return
// highlight-next-line
println("New call route: ${state.route}")
}
Pour Android API 34 et versions ultérieures
override fun onCallEndpointChanged(callEndpoint: CallEndpoint) {
// highlight-next-line
println("New call endpoint: ${callEndpoint}")
}
Vous pouvez également redéfinir la source de sortie audio à l'aide de setAudioRoute ou modification du point de terminaison de l'appel :
Pour Android API 33 et versions antérieures
call.setAudioRoute(CallAudioState.ROUTE_BLUETOOTH)
Pour Android API 34 et versions ultérieures
override fun onAvailableCallEndpointsChanged(availableEndpoints: List<CallEndpoint>) {
for (endpoint in availableEndpoints) {
if (endpoint.endpointType == CallEndpoint.ENDPOINT_TYPE_BLUETOOTH) {
requestCallEndpointChange(
endpoint,
Executor { it.run() },
object : OutcomeReceiver<Void, CallEndpointException> {
override fun onResult(result: Void?) {
// Successfully switched to Bluetooth
}
override fun onError(error: CallEndpointException) {
// Handle error during endpoint change
}
}
)
break
}
}
}
Nous vous recommandons d'éviter d'utiliser ces méthodes pour acheminer la sortie audio et de vous en tenir exclusivement à l'interface utilisateur intégrée de Telecom afin de bénéficier d'une meilleure expérience.