Salida de audio para llamadas (Android)
Para permitir un cambio fluido de la salida de audio dentro de tu aplicación, te recomendamos integrar el marco Telecom de Android. Telecom permite a tu aplicación gestionar los servicios de llamadas de forma eficiente, lo que garantiza una experiencia de usuario fluida. Consulta la documentación oficial de Android sobre Telecom. aquí.
Integración de telecomunicaciones
Para obtener orientación detallada sobre cómo integrar el marco de Telecom en su proyecto, consulte Integración de telecomunicaciones.
Observación de los cambios en la salida de audio
Puedes suscribirte al método delegado onCallAudioStateChanged o onCallEndpointChanged para observar los cambios en la salida de audio.
Así es como puedes hacerlo:
Para la API de Android 33 y versiones anteriores
override fun onCallAudioStateChanged(state: CallAudioState?) {
state ?: return
// highlight-next-line
println("New call route: ${state.route}")
}
Para Android API 34 y superior
override fun onCallEndpointChanged(callEndpoint: CallEndpoint) {
// highlight-next-line
println("New call endpoint: ${callEndpoint}")
}
También puedes anular la fuente de salida de audio utilizando setAudioRoute o solicitarCambioDePuntoFinalDeLlamada :
Para la API de Android 33 y versiones anteriores
call.setAudioRoute(CallAudioState.ROUTE_BLUETOOTH)
Para Android API 34 y superior
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
}
}
}
Recomendamos evitar el uso de esos métodos para canalizar la salida de audio y utilizar únicamente la interfaz de usuario integrada de Telecom para disfrutar de una mejor experiencia.