aws / amazon-chime-sdk-android

An Android client library for integrating multi-party communications powered by the Amazon Chime service.
https://aws.amazon.com/chime/chime-sdk/
Apache License 2.0
105 stars 49 forks source link

Audio is not sent when bluetooth device is connected and the call disconnects after a while #490

Closed prajnas closed 2 years ago

prajnas commented 2 years ago

Describe the bug On Android where when you are connected to the any bluetooth headphones, the audio from the android phone is not sent. We can receive the audio , but the user's voice on bluetooth headphones are not sent over.. This is 100% reproducible on any Samsung or Pixel phones. We are using the chime sdk & media sdk version : 0.17.0 , I upgraded to 0.17.2 and it does not help.

To Reproduce Steps to reproduce the behavior:

  1. Connect to bluetooth device
  2. Start a call
  3. Other people on the call cannot hear
  4. Call disconnects

Expected behavior With bluetooth device we should be able to send audio over

Logs

2022-07-25 22:35:03.283 1546-1747/? D/BluetoothHearingAid: setVolume(-33)
2022-07-25 22:35:03.302 7106-7676/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : connection.cc: [036:394][7676] (line 790): Conn[43b2e7f0:audio:Net[wlan0:192.168.1.x/24:Wifi:id=3]:lD8y70s8:1:0:relay:udp:10.1.18.x:59327->ezRyhhCa:1:1694498815:local:udp:10.1.89.x:16904|CRWS|S|0|0|179616218607517694|7]: UpdateState(), ms since last received response=745, ms since last received data=35823, rtt=100, pings_since_last_response=
2022-07-25 22:35:03.357 3036-3301/? W/AiAiEcho: SmartspaceNotificationPredictor no parser can handle this notification or notification is invalid
2022-07-25 22:35:03.358 1806-1806/? D/InterruptionStateProvider: No bubble up: not allowed to bubble: 0|com.Slack.internal.debug|2131363613|null|10248
2022-07-25 22:35:03.359 1806-1806/? D/InterruptionStateProvider: No heads up: unimportant notification: 0|com.Slack.internal.debug|2131363613|null|10248
2022-07-25 22:35:03.363 1806-1860/? D/PeopleSpaceWidgetMgr: Sbn doesn't contain valid PeopleTileKey: null/0/com.Slack.internal.debug
2022-07-25 22:35:03.383 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : [xal] speaker stopped
2022-07-25 22:35:03.384 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : _mic_stream_stop_audio
2022-07-25 22:35:03.384 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : _mic_stream_stop_audio: avail avg = 23.530 ms, stdev = 9.407 ms, count = 2623
2022-07-25 22:35:03.385 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : [xal] enter xal_mic_stop
2022-07-25 22:35:03.385 7106-7743/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : [xal] process_thread_main exit: 0
2022-07-25 22:35:03.397 722-822/? D/audio_hw_patch: patch_release_audio_patch: patch handle 44
2022-07-25 22:35:03.398 1546-3091/? I/SoundTriggerMiddlewareLogging: setCaptureState[this=com.android.server.soundtrigger_middleware.SoundTriggerMiddlewareImpl@382db03, client=null](false)
2022-07-25 22:35:03.400 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : [xal] mic stopped
2022-07-25 22:35:03.400 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : [xal] xal_mic_stop complete
2022-07-25 22:35:03.400 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : [xal] enter xal_spk_close
2022-07-25 22:35:03.400 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : [xal] xal_spk_destroy_opensl_player
2022-07-25 22:35:03.411 722-822/? W/audio_hw_fortemedia: handle_output_event: unknown event 23
2022-07-25 22:35:03.411 722-822/? D/audio_hw_output_stream: update stream 4 active 0 gain 0.000000
2022-07-25 22:35:03.412 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : [xal] destroyed opensl player
2022-07-25 22:35:03.413 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : xal spk closed
2022-07-25 22:35:03.413 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : [xal] enter xal_mic_close
2022-07-25 22:35:03.415 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : [xal] xal_mic_close complete
2022-07-25 22:35:03.415 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : xal mic closed
2022-07-25 22:35:03.416 7106-7682/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : ui_bridge 0xb400006fc3bea470: thread exiting
2022-07-25 22:35:03.417 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : media stream: _media_stream_stop
2022-07-25 22:35:03.417 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : spk_stream_stop_audio
2022-07-25 22:35:03.418 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : _mic_stream_stop_audio
2022-07-25 22:35:03.419 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : enter xal_destroy [gingerbread] xal: 0xb400006fc3bf2150 ref_count: 1 
2022-07-25 22:35:03.419 1546-3091/? I/SoundTriggerMiddlewareLogging: setCaptureState[this=com.android.server.soundtrigger_middleware.SoundTriggerMiddlewareImpl@382db03, client=null](false)
2022-07-25 22:35:03.420 7106-7655/com.Slack.internal.debug D/(ChimeLogger.kt:38) ⇢ log(): CallsDebug (ChimeLogger)  (verbose) : xal_destroy [gingerbread] xal 0xb400006fc3bf2150 destroying engine 601245248 
2022-07-25 22:35:03.424 7106-7106/com.Slack.internal.debug D/(ChimeMeetingSessionImpl.kt:1011) ⇢ onAudioSessionStopped(): CallsDebug (ChimeSession): AudioVideoObserver.onAudioSessionStopped callback, sessionStatus: null
2022-07-25 22:35:03.424 7106-7106/com.Slack.internal.debug D/(ChimeMeetingSessionImpl.kt:1024) ⇢ onAudioSessionStopped(): CallsDebug (ChimeSession) : AudioVideoObserver.onAudioSessionStopped callback, sending native error

    [          1658813703.425  7106: 7106 V/(CallManagerImpl.java:2065) ⇢ lambda$monitorEndCall$64$slack-services-calls-service-bmonitorEndCall reason=NATIVE_ERROR

    [          1658813703.426  7106: 7106 V/(CallManagerImpl.java:2077) ⇢ lambda$endCallObservable$66$slack-services-calls-servicendCallObservable reason=NATIVE_ERROR
2022-07-25 22:35:03.427 7106-7106/com.Slack.internal.debug D/(ProximityWakeLockHelper.kt:71) ⇢ releaseProximityWakeLock(): CallsDebug (ProximityWakeLock): release

    [          1658813703.429  7106: 7106 V/(CallManagerImpl.java:2134) ⇢ lambda$endCallObservable$67$slack-services-calls-servicdisconnect calls core session.
2022-07-25 22:35:03.430 7106-7106/com.Slack.internal.debug D/(ChimeMeetingSessionImpl.kt:375) ⇢ leaveCall$lambda-5(): CallsDebug (ChimeSession): leaveCall attempting to stop audio and video
2022-07-25 22:35:03.431 7106-7106/com.Slack.internal.debug E/(ChimeLogger.kt:42) ⇢ log(): CallsDebug (ChimeLogger)  : Current audio client state STOPPED is invalid to stop audio, ignoring

Screenshots If applicable, add screenshots to help explain your problem.

Test environment Info (please complete the following information):

Additional context It is 100% reproduceable

ziyiz-amzn commented 2 years ago

Thanks for reporting this. We will investigate and update in the support ticket.