haiyangwu / mediasoup-demo-android

mediasoup android demo https://demo.mediasoup.org
96 stars 65 forks source link

Crash app after approx 30 seconds of join room from android and web app #1

Closed pintukumarpatil closed 4 years ago

pintukumarpatil commented 4 years ago

Hello @haiyangwu, There is a problem with using this project

2019-11-20 19:47:59.109 25541-25620/org.mediasoup.droid.demo E/AndroidRuntime: FATAL EXCEPTION: AudioRecordJavaThread Process: org.mediasoup.droid.demo, PID: 25541 java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.voiceengine.WebRtcAudioRecord.nativeDataIsRecorded(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioRecord_nativeDataIsRecorded and Java_org_webrtc_voiceengine_WebRtcAudioRecord_nativeDataIsRecorded__IJ) at org.webrtc.voiceengine.WebRtcAudioRecord.nativeDataIsRecorded(Native Method) at org.webrtc.voiceengine.WebRtcAudioRecord.access$600(WebRtcAudioRecord.java:26) at org.webrtc.voiceengine.WebRtcAudioRecord$AudioRecordThread.run(WebRtcAudioRecord.java:166)

FlashMickeyMouse commented 4 years ago

Hello @haiyangwu , I had the same problem and the server log displays 'mediasoup-demo-server:Room protoo Peer "close" event [peerId:79rkfrly] +8s'

haiyangwu commented 4 years ago

@pintukumarpatil @FlashMickeyMouse 🤔It works fine on my phone and emulator. Could you help me find the bug?

pintukumarpatil commented 4 years ago

Hello @haiyangwu I am sharing a test scenario, so you can find the bug easily.

  1. After joined call, wait until WebSockets connection lost(WebSockets disconnect). Log on console WebSocketTransport: onClose() code: 3, reason: WebSockets connection lost and scheduleReconnect method will call for reconnect mWebSocketConnection.reconnect();
  2. After reconnect the WebSocket, onOpen listener will call with joinImpl() method again(second time)
  3. mediasoupDevice.load(data) will call second time And then crash the app.
haiyangwu commented 4 years ago

@pintukumarpatil Thx for your advice, but I can't reproduce the crash. Cloud you please upload more logs about WebSocketTransport and RoomClient ?

pintukumarpatil commented 4 years ago

Hello @haiyangwu

First join room in web app,and then join room in android and after that refresh web app.

i am sharing last logs:

2019-11-28 18:53:43.992 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: onMessage() 2019-11-28 18:53:43.993 2118-2118/org.mediasoup.droid.demo D/RoomClient: onNotification() {"peerId":"hstjc89q","volume":-45} 2019-11-28 18:53:44.672 2118-3765/org.mediasoup.droid.demo I/org.webrtc.Logging: EglRenderer: video_viewDuration: 4017 ms. Frames received: 74. Dropped: 0. Rendered: 74. Render fps: 18.4. Average render time: 6426 us. Average swapBuffer time: 2648 us. 2019-11-28 18:53:44.796 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: onMessage() 2019-11-28 18:53:44.797 2118-2118/org.mediasoup.droid.demo D/RoomClient: onNotification() {"peerId":"6jqdd1pa","volume":-43} 2019-11-28 18:53:45.143 2118-3050/org.mediasoup.droid.demo I/org.webrtc.Logging: CameraStatistics: Camera fps: 30. 2019-11-28 18:53:45.604 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: onMessage() 2019-11-28 18:53:45.605 2118-2118/org.mediasoup.droid.demo D/RoomClient: onNotification() {"peerId":"hstjc89q","volume":-45} 2019-11-28 18:53:45.907 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: onMessage() 2019-11-28 18:53:45.908 2118-2118/org.mediasoup.droid.demo D/RoomClient: onNotification() {"producerId":"50962eff-7661-4fe5-b230-420a013fbce9","score":[{"score":9,"ssrc":3989017366}]} 2019-11-28 18:53:46.392 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: onMessage() 2019-11-28 18:53:46.392 2118-2118/org.mediasoup.droid.demo D/RoomClient: onNotification() {"peerId":"6jqdd1pa","volume":-46} 2019-11-28 18:53:46.561 2118-2698/org.mediasoup.droid.demo D/RoomClient_SendTrans: onConnectionStateChange: disconnected 2019-11-28 18:53:46.562 2118-2723/org.mediasoup.droid.demo D/RoomClient_RecvTrans: onConnectionStateChange: disconnected 2019-11-28 18:53:46.567 2118-2118/org.mediasoup.droid.demo W/WebSocketTransport: onClose() code: 3, reason: WebSockets connection lost 2019-11-28 18:53:46.567 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: scheduleReconnect() 2019-11-28 18:53:46.567 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: getReconnectInterval() 2019-11-28 18:53:46.568 2118-2118/org.mediasoup.droid.demo W/Peer: onDisconnected() 2019-11-28 18:53:46.842 2118-3051/org.mediasoup.droid.demo I/org.webrtc.Logging: EglRenderer: local_video_viewDuration: 4006 ms. Frames received: 119. Dropped: 0. Rendered: 119. Render fps: 29.7. Average render time: 4665 us. Average swapBuffer time: 2694 us. 2019-11-28 18:53:47.145 2118-3050/org.mediasoup.droid.demo I/org.webrtc.Logging: CameraStatistics: Camera fps: 30. 2019-11-28 18:53:47.578 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: doing reconnect job 2019-11-28 18:53:48.262 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: setConnection() 2019-11-28 18:53:48.263 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: onConnect() 2019-11-28 18:53:48.263 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: onOpen() 2019-11-28 18:53:48.263 2118-2366/org.mediasoup.droid.demo D/RoomClient: joinImpl() 2019-11-28 18:53:48.263 2118-2366/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] device_jni::Java_org_mediasoup_droid_Device_nativeNewDevice() 2019-11-28 18:53:48.389 2118-2118/org.mediasoup.droid.demo D/WebSocketTransport: onMessage() 2019-11-28 18:53:48.396 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] device_jni::Java_org_mediasoup_droid_Device_nativeLoad() 2019-11-28 18:53:48.400 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] Device::Load() 2019-11-28 18:53:48.400 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] Handler::GetNativeRtpCapabilities() 2019-11-28 18:53:48.400 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] PeerConnection::PeerConnection() 2019-11-28 18:53:48.408 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: ctor@[name=Thread-11, id=635] 2019-11-28 18:53:48.410 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: Sample rate is set to 48000 Hz 2019-11-28 18:53:48.411 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioEffects: canUseAcousticEchoCanceler: true 2019-11-28 18:53:48.412 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioEffects: canUseNoiseSuppressor: true 2019-11-28 18:53:48.415 2118-4549/org.mediasoup.droid.demo W/org.webrtc.Logging: WebRtcAudioManager: AAudio support is currently disabled on all devices! 2019-11-28 18:53:48.418 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: Android SDK: 26, Release: 8.0.0, Brand: samsung, Device: hero2lte, Id: R16NW, Hardware: samsungexynos8890, Manufacturer: samsung, Model: SM-G935F, Product: hero2ltexx 2019-11-28 18:53:48.427 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: Audio State: audio mode: MODE_NORMAL, has mic: true, mic muted: false, music active: false, speakerphone: false, BT SCO: false 2019-11-28 18:53:48.427 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: Audio State: 2019-11-28 18:53:48.427 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: fixed volume=false 2019-11-28 18:53:48.432 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: STREAM_VOICE_CALL: volume=1, max=5, muted=false 2019-11-28 18:53:48.434 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: STREAM_MUSIC: volume=0, max=15, muted=false 2019-11-28 18:53:48.436 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: STREAM_RING: volume=7, max=15, muted=false 2019-11-28 18:53:48.438 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: STREAM_ALARM: volume=11, max=15, muted=false 2019-11-28 18:53:48.439 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: STREAM_NOTIFICATION: volume=14, max=15, muted=false 2019-11-28 18:53:48.441 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: STREAM_SYSTEM: volume=15, max=15, muted=false 2019-11-28 18:53:48.446 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: Audio Devices: 2019-11-28 18:53:48.446 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: TYPE_BUILTIN_SPEAKER(out): id=1 2019-11-28 18:53:48.447 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: TYPE_BUILTIN_EARPIECE(out): id=2 2019-11-28 18:53:48.447 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: TYPE_BUILTIN_MIC(in): channels=[1, 2], encodings=[2], sample rates=[8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000], id=5 2019-11-28 18:53:48.448 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: TYPE_TELEPHONY(in): channels=[1, 2], encodings=[2], sample rates=[8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000], id=7 2019-11-28 18:53:48.448 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioTrack: ctor@[name=Thread-11, id=635] 2019-11-28 18:53:48.449 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioRecord: ctor@[name=Thread-11, id=635] 2019-11-28 18:53:48.449 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioEffects: ctor@[name=Thread-11, id=635] 2019-11-28 18:53:48.449 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: init@[name=Thread-11, id=635] 2019-11-28 18:53:48.451 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: audio mode is: MODE_NORMAL 2019-11-28 18:53:48.453 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioRecord: enableBuiltInAEC(true) 2019-11-28 18:53:48.453 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioEffects: setAEC(true) 2019-11-28 18:53:48.454 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioEffects: canUseAcousticEchoCanceler: true 2019-11-28 18:53:48.454 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioRecord: enableBuiltInNS(true) 2019-11-28 18:53:48.454 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioEffects: setNS(true) 2019-11-28 18:53:48.455 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioEffects: canUseNoiseSuppressor: true 2019-11-28 18:53:48.461 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] PeerConnection::AddTransceiver() 2019-11-28 18:53:48.461 2118-4548/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] PeerConnection::OnRenegotiationNeeded() 2019-11-28 18:53:48.461 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] PeerConnection::AddTransceiver() 2019-11-28 18:53:48.462 2118-4548/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] PeerConnection::OnRenegotiationNeeded() 2019-11-28 18:53:48.462 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] PeerConnection::CreateOffer() 2019-11-28 18:53:48.681 2118-3765/org.mediasoup.droid.demo I/org.webrtc.Logging: EglRenderer: video_viewDuration: 4009 ms. Frames received: 42. Dropped: 0. Rendered: 42. Render fps: 10.5. Average render time: 6125 us. Average swapBuffer time: 2589 us. 2019-11-28 18:53:48.832 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] Sdp::Utils::extractRtpCapabilities() 2019-11-28 18:53:48.847 2118-4549/org.mediasoup.droid.demo I/org.webrtc.Logging: WebRtcAudioManager: dispose@[name=Thread-11, id=635] 2019-11-28 18:53:48.850 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::getExtendedRtpCapabilities() 2019-11-28 18:53:48.851 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchCodecs() 2019-11-28 18:53:48.851 2118-2118/org.mediasoup.droid.demo I/chatty: uid=10050(u0_a50) org.mediasoup.droid.demo identical 18 lines 2019-11-28 18:53:48.851 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchCodecs() 2019-11-28 18:53:48.851 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::reduceRtcpFeedback() 2019-11-28 18:53:48.852 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchCodecs() 2019-11-28 18:53:48.852 2118-2118/org.mediasoup.droid.demo I/chatty: uid=10050(u0_a50) org.mediasoup.droid.demo identical 3 lines 2019-11-28 18:53:48.852 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchCodecs() 2019-11-28 18:53:48.852 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::reduceRtcpFeedback() 2019-11-28 18:53:48.852 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchCodecs() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/chatty: uid=10050(u0_a50) org.mediasoup.droid.demo identical 7 lines 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchCodecs() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::getH264PacketizationMode() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::getH264PacketizationMode() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::getH264LevelAssimetryAllowed() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::getH264LevelAssimetryAllowed() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchCodecs() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/chatty: uid=10050(u0_a50) org.mediasoup.droid.demo identical 2 lines 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchCodecs() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::getH264PacketizationMode() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::getH264PacketizationMode() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::getH264LevelAssimetryAllowed() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::getH264LevelAssimetryAllowed() 2019-11-28 18:53:48.853 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::reduceRtcpFeedback() 2019-11-28 18:53:48.854 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchCodecs() 2019-11-28 18:53:48.854 2118-2118/org.mediasoup.droid.demo I/chatty: uid=10050(u0_a50) org.mediasoup.droid.demo identical 5 lines 2019-11-28 18:53:48.854 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchCodecs() 2019-11-28 18:53:48.854 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::reduceRtcpFeedback() 2019-11-28 18:53:48.865 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchHeaderExtensions() 2019-11-28 18:53:48.867 2118-2118/org.mediasoup.droid.demo I/chatty: uid=10050(u0_a50) org.mediasoup.droid.demo identical 38 lines 2019-11-28 18:53:48.867 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchHeaderExtensions() 2019-11-28 18:53:48.867 2118-3164/org.mediasoup.droid.demo E/zygote: No implementation found for void org.webrtc.voiceengine.WebRtcAudioRecord.nativeDataIsRecorded(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioRecord_nativeDataIsRecorded and Java_org_webrtc_voiceengine_WebRtcAudioRecord_nativeDataIsRecorded__IJ) 2019-11-28 18:53:48.867 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchHeaderExtensions() 2019-11-28 18:53:48.867 2118-2118/org.mediasoup.droid.demo I/chatty: uid=10050(u0_a50) org.mediasoup.droid.demo identical 9 lines 2019-11-28 18:53:48.867 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchHeaderExtensions() 2019-11-28 18:53:48.867 2118-3751/org.mediasoup.droid.demo E/zygote: No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData__IJ) 2019-11-28 18:53:48.868 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchHeaderExtensions()

--------- beginning of crash

2019-11-28 18:53:48.869 2118-3751/org.mediasoup.droid.demo E/AndroidRuntime: FATAL EXCEPTION: AudioTrackJavaThread Process: org.mediasoup.droid.demo, PID: 2118 java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutDataIJ) at org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(Native Method) at org.webrtc.voiceengine.WebRtcAudioTrack.access$400(WebRtcAudioTrack.java:28) at org.webrtc.voiceengine.WebRtcAudioTrack$AudioTrackThread.run(WebRtcAudioTrack.java:147) 2019-11-28 18:53:48.869 2118-3164/org.mediasoup.droid.demo E/AndroidRuntime: FATAL EXCEPTION: AudioRecordJavaThread Process: org.mediasoup.droid.demo, PID: 2118 java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.voiceengine.WebRtcAudioRecord.nativeDataIsRecorded(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioRecord_nativeDataIsRecorded and Java_org_webrtc_voiceengine_WebRtcAudioRecord_nativeDataIsRecordedIJ) at org.webrtc.voiceengine.WebRtcAudioRecord.nativeDataIsRecorded(Native Method) at org.webrtc.voiceengine.WebRtcAudioRecord.access$600(WebRtcAudioRecord.java:26) at org.webrtc.voiceengine.WebRtcAudioRecord$AudioRecordThread.run(WebRtcAudioRecord.java:166) 2019-11-28 18:53:48.872 2118-2118/org.mediasoup.droid.demo I/chatty: uid=10050(u0_a50) org.mediasoup.droid.demo identical 78 lines 2019-11-28 18:53:48.872 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::matchHeaderExtensions() 2019-11-28 18:53:48.873 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::canSend() 2019-11-28 18:53:48.873 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::canSend() 2019-11-28 18:53:48.873 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] ortc::getRecvRtpCapabilities() 2019-11-28 18:53:48.875 2118-2118/org.mediasoup.droid.demo D/mediasoupclient-jni: [DEBUG] Device::Load() | succeeded 2019-11-28 18:53:48.875 2118-2118/org.mediasoup.droid.demo I/mediasoupclient-jni: [TRACE] device_jni::Java_org_mediasoup_droid_Device_nativeGetRtpCapabilities()

haiyangwu commented 4 years ago

@pintukumarpatil Thanks again, I got the error and it's a state error which hasn't been handled properly. But I had to solve this later, for now, I'm focusing on the Demo's UI.

haiyangwu commented 4 years ago

Recently, I've added a lot of functions into RoomClient and rewritten the whole UI struct using MVVM + LiveData. This bug should be resolved now.

After onDisconnected from the server, RoomClient#closeTransportAndDevice would release the WebRtcAudioRecord. When websocket reopen, it would fine to recreate Device and invoke it's load function.

BTW, the dev branch still contains thread sync issues. 🤪