livekit / client-sdk-flutter

Flutter Client SDK for LiveKit
https://docs.livekit.io
Apache License 2.0
248 stars 121 forks source link

Not reconnecting after network problem fixed #189

Closed fpasalioglu closed 1 year ago

fpasalioglu commented 1 year ago

Describe the issue If the broadcaster has an internet problem or switches from wifi to cellular, the broadcast is interrupted and does not reconnect.

To Reproduce Switch from wifi to cellular

Expected behavior Continue the broadcast from where it is when the internet is fixed

sunny0092 commented 1 year ago

If the network is strong, the call will be normal. If the network is slow or the network is switched, the app will immediately crash, LiveKit message "Timeout" or "Failed connect to server" I'm also experiencing a constant timeout and can't reconnect. in the try catch section if there is an error, always call the function _updateConnectionState(ConnectionState.disconnected);

cloudwebrtc commented 1 year ago

I'll check, it seems like it should listen to the connection type and try to reconnect automatically when it changes

davidzhao commented 1 year ago

@fpasalioglu do you happen to receive a disconnected event when this happens? Which device are you using to reproduce the issue?

fpasalioglu commented 1 year ago

Xiaomi 11T Pro Xiaomi Note 8 Iphone 6 I check RoomDisconnectedEvent and ParticipantDisconnectedEvent events on Iphone 6, but they not triggered.

cloudwebrtc commented 1 year ago

I remember switching networks on mobile devices, the connected TCP socket will remain for a period of time unless the socket is actively closed, but it may ice disconnect.

@fpasalioglu Can you see the signaling disconnect in the log? when you switch networks

fpasalioglu commented 1 year ago

@cloudwebrtc This is log:

I/org.webrtc.Logging(13150): NativeLibrary: Loading native library: jingle_peerconnection_so
I/org.webrtc.Logging(13150): NativeLibrary: Loading library: jingle_peerconnection_so
I/org.webrtc.Logging(13150): PeerConnectionFactory: PeerConnectionFactory was initialized without an injected Loggable. Any existing Loggable will be deleted.
I/org.webrtc.Logging(13150): EglBase14Impl: Using OpenGL ES version 2
I/org.webrtc.Logging(13150): WebRtcAudioManagerExternal: Sample rate is set to 48000 Hz
I/org.webrtc.Logging(13150): WebRtcAudioManagerExternal: Sample rate is set to 48000 Hz
I/org.webrtc.Logging(13150): JavaAudioDeviceModule: createAudioDeviceModule
I/org.webrtc.Logging(13150): JavaAudioDeviceModule: HW NS will be used.
I/org.webrtc.Logging(13150): JavaAudioDeviceModule: HW AEC will be used.
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: ctor@[name=main, id=2]
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: ctor@[name=main, id=2]
I/org.webrtc.Logging(13150): WebRtcAudioTrackExternal: ctor@[name=main, id=2]
W/AudioCapabilities(13150): Unsupported mime audio/ozoaudio
W/AudioCapabilities(13150): Unsupported mime audio/ozoaudio
W/VideoCapabilities(13150): Unsupported mime video/dolby-vision
W/VideoCapabilities(13150): Unrecognized profile/level 0/3 for video/mpeg2
W/VideoCapabilities(13150): Unrecognized profile/level 0/3 for video/mpeg2
W/VideoCapabilities(13150): Unsupported mime image/vnd.android.heic
W/VideoCapabilities(13150): Unsupported mime image/vnd.android.heic
W/VideoCapabilities(13150): Unsupported mime video/dolby-vision
W/VideoCapabilities(13150): Unsupported mime video/dolby-vision
W/VideoCapabilities(13150): Unsupported mime video/dolby-vision
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInNS(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setNS(true)
I/org.webrtc.Logging(13150): PeerConnectionFactory: onNetworkThreadReady
I/org.webrtc.Logging(13150): PeerConnectionFactory: onWorkerThreadReady
I/org.webrtc.Logging(13150): PeerConnectionFactory: onSignalingThreadReady
W/FlutterWebRTCPlugin(13150): audioFocusChangeListener [Speakerphone(name=Speakerphone), Earpiece(name=Earpiece)] Speakerphone(name=Speakerphone)
D/MediaConstraintsUtils(13150): mandatory constraints are not a map
I/FlutterWebRTCPlugin(13150): getUserMedia(audio): mandatory: [], optional: [echoCancellation: true, googDAEchoCancellation: true, googEchoCancellation: true, googEchoCancellation2: true, noiseSuppression: true, googNoiseSuppression: true, googNoiseSuppression2: true, googAutoGainControl: true, googHighpassFilter: false, googTypingNoiseDetection: true]
D/FlutterWebRTCPlugin(13150): MediaStream id: 560f797f-59c1-4168-b769-db3a6427a3a0
I/FlutterWebRTCPlugin(13150): getUserMedia(video): ConstraintsMap{mMap={frameRate=30, facingMode=user, width=960, height=720}}
W/libc    (13150): Access denied finding property "vendor.camera.aux.packagelist"
D/FlutterWebRTCPlugin(13150): Creating video capturer using Camera2 API.
W/libc    (13150): Access denied finding property "vendor.camera.aux.packagelist"
W/libc    (13150): Access denied finding property "vendor.camera.aux.packagelist"
D/FlutterWebRTCPlugin(13150): Create front camera 1 succeeded
I/org.webrtc.Logging(13150): EglBase14Impl: Using OpenGL ES version 2
I/org.webrtc.Logging(13150): CameraCapturer: startCapture: 960x720@30
D/FlutterWebRTCPlugin(13150): changeCaptureFormat: 960x720@30
I/org.webrtc.Logging(13150): Camera2Session: Create new camera2 session on camera 1
I/org.webrtc.Logging(13150): Camera2Session: start
D/FlutterWebRTCPlugin(13150): MediaStream id: 13a38456-5488-46b6-83cf-92a0f48265ae
I/org.webrtc.Logging(13150): Camera2Session: Available preview sizes: [2304x1728, 2304x1296, 1920x1080, 1600x1200, 1600x720, 1440x1080, 1280x960, 1280x720, 864x480, 800x600, 720x480, 640x480, 352x288, 320x240, 176x144]
I/org.webrtc.Logging(13150): Camera2Session: Available fps ranges: [[9.0:9.0], [10.0:10.0], [15.0:15.0], [9.0:30.0], [30.0:30.0]]
I/org.webrtc.Logging(13150): Camera2Session: Using capture format: 800x600@[9.0:30.0]
I/org.webrtc.Logging(13150): Camera2Session: Opening camera 1
D/FlutterWebRTCPlugin(13150): CameraEventsHandler.onCameraOpening: cameraName=1
W/libc    (13150): Access denied finding property "persist.vendor.camera.privapp.list"
D/CameraExtImplXiaoMi(13150): initCameraDevice: 1
I/org.webrtc.Logging(13150): Camera2Session: Camera opened.
I/org.webrtc.Logging(13150): NetworkMonitor: Start monitoring with native observer -5476376646093364288 fieldTrialsString: 
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: Network becomes available: 310
D/FlutterWebRTCPlugin(13150): onIceGatheringChangeGATHERING
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: capabilities changed: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED LinkUpBandwidth>=18520Kbps LinkDnBandwidth>=68683Kbps TransportInfo: <SSID: <unknown ssid>, BSSID: 02:00:00:00:00:00, MAC: 02:00:00:00:00:00, Security type: 2, Supplicant state: COMPLETED, Wi-Fi standard: 4, RSSI: -61, Link speed: 144Mbps, Tx Link speed: 144Mbps, Max Supported Tx Link speed: 144Mbps, Rx Link speed: 144Mbps, Max Supported Rx Link speed: 144Mbps, Frequency: 2457MHz, Net ID: -1, Metered hint: false, score: 60, CarrierMerged: false, SubscriptionId: -1, IsPrimary: -1> SignalStrength: -61 UnderlyingNetworks: Null]
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: link properties changed
I/org.webrtc.Logging(13150): Camera2Session: Camera capture session configured.
I/org.webrtc.Logging(13150): Camera2Session: Using video stabilization.
I/org.webrtc.Logging(13150): Camera2Session: Auto-focus is not available.
D/FlutterWebRTCPlugin(13150): onConnectionChangeCONNECTING
I/org.webrtc.Logging(13150): Camera2Session: Camera device successfully started.
I/org.webrtc.Logging(13150): CameraCapturer: Create session done. Switch state: IDLE
I/org.webrtc.Logging(13150): SurfaceTextureHelper: Setting listener to org.webrtc.Camera2Session$CaptureSessionCallback$$ExternalSyntheticLambda0@efffd6f
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/MediaConstraintsUtils(13150): mandatory constraints are not a map
D/MediaConstraintsUtils(13150): optional constraints are not an array
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInNS(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setNS(true)
D/FlutterWebRTCPlugin(13150): onIceGatheringChangeGATHERING
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInNS(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setNS(true)
D/FlutterWebRTCPlugin(13150): onConnectionChangeCONNECTING
D/FlutterWebRTCPlugin(13150): onSelectedCandidatePairChanged
D/FlutterWebRTCPlugin(13150): onIceGatheringChangeCOMPLETE
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
I/Adreno  (13150): colorspace 2, formatQualfifer 2
D/FlutterWebRTCPlugin(13150): CameraEventsHandler.onFirstFrameAvailable
I/Adreno  (13150): colorspace 2, formatQualfifer 2
E/org.webrtc.Logging(13150): HardwareVideoEncoder: MediaCodec is only tested with resolutions that are 16x16 aligned.
E/org.webrtc.Logging(13150): HardwareVideoEncoder: MediaCodec is only tested with resolutions that are 16x16 aligned.
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: Network becomes available: 311
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: capabilities changed: [ Transports: CELLULAR Capabilities: SUPL&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED LinkUpBandwidth>=15000Kbps LinkDnBandwidth>=30000Kbps Specifier: <TelephonyNetworkSpecifier [mSubId = 1]> UnderlyingNetworks: Null]
D/FlutterWebRTCPlugin(13150): onIceCandidate
I/Adreno  (13150): colorspace 2, formatQualfifer 2
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: link properties changed
I/Adreno  (13150): colorspace 2, formatQualfifer 2
I/Adreno  (13150): colorspace 2, formatQualfifer 2
D/FlutterWebRTCPlugin(13150): onIceGatheringChangeCOMPLETE
D/FlutterWebRTCPlugin(13150): onSelectedCandidatePairChanged
I/Adreno  (13150): colorspace 2, formatQualfifer 2
I/Adreno  (13150): colorspace 2, formatQualfifer 2
D/FlutterWebRTCPlugin(13150): onConnectionChangeCONNECTED
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInNS(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setNS(true)
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: initRecording(sampleRate=48000, channels=1)
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: byteBuffer.capacity: 960
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: AudioRecord.getMinBufferSize: 3840
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: bufferSizeInBytes: 7680
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: createAudioRecordOnMOrHigher
D/AudioRecord(13150): set(): inputSource 7, sampleRate 48000, format 0x1, channelMask 0x10, frameCount 3840, notificationFrames 0, sessionId 0, transferType 0, flags 0, attributionSource AttributionSourceState{pid: -1, uid: 10592, packageName: com.lopmelive01.live, attributionTag: (null), token: , renouncedPermissions: (null), next: []}uid -1, pid -1, isIsolated 0
I/Adreno  (13150): colorspace 2, formatQualfifer 2
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: enable(audioSession=54513)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: AcousticEchoCanceler: was enabled, enable: true, is now: enabled
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: NoiseSuppressor: was enabled, enable: true, is now: enabled
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: AudioRecord: session ID: 54513, channels: 1, sample rate: 48000
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: AudioRecord: buffer size in frames: 3840
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: Number of active recording sessions: 0
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: startRecording
D/AudioRecord(13150): start(7199): sync event 0 trigger session 0, mSessionID=54513
I/Adreno  (13150): colorspace 2, formatQualfifer 2
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: scheduleLogRecordingConfigurationsTask
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: AudioRecordThread@[name=AudioRecordJavaThread, id=1886]
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: doAudioRecordStateCallback: START
D/FlutterWebRTCPlugin(13150): getStats() unknown type: java.util.LinkedHashMap for [qualityLimitationDurations] value: {bandwidth=0.213, cpu=0.0, none=0.031, other=0.0}
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: Number of active recording sessions: 1
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: AudioRecordingConfigurations: 
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal:   client audio source=VOICE_COMMUNICATION, client session id=54513 (54513)
I/org.webrtc.Logging(13150):   Device AudioFormat: channel count=1, channel index mask=0, channel mask=IN_MONO, encoding=PCM_16BIT, sample rate=48000
I/org.webrtc.Logging(13150):   Client AudioFormat: channel count=1, channel index mask=0, channel mask=IN_MONO, encoding=PCM_16BIT, sample rate=48000
I/org.webrtc.Logging(13150):   AudioDevice: type=TYPE_BUILTIN_MIC, id=23
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: verifyAudioConfig: PASS
D/FlutterWebRTCPlugin(13150): onSelectedCandidatePairChanged
D/FlutterWebRTCPlugin(13150): onConnectionChangeCONNECTED
D/FlutterWebRTCPlugin(13150): getStats() unknown type: java.util.LinkedHashMap for [qualityLimitationDurations] value: {bandwidth=0.876, cpu=0.0, none=0.031, other=0.0}
I/org.webrtc.Logging(13150): EglRenderer: Initializing EglRenderer
I/org.webrtc.Logging(13150): EglRenderer: EglBase.create shared context
I/org.webrtc.Logging(13150): EglBase14Impl: Using OpenGL ES version 2
W/FlutterWebRTCPlugin(13150): FlutterRTCVideoRenderer.setVideoTrack, set video track to 17be4087-db05-43f9-81e5-c4498a0f9654
I/org.webrtc.Logging(13150): EglRenderer: Releasing.
I/org.webrtc.Logging(13150): EglRenderer: eglBase detach and release.
I/org.webrtc.Logging(13150): EglRenderer: Releasing done.
I/org.webrtc.Logging(13150): EglRenderer: Initializing EglRenderer
I/org.webrtc.Logging(13150): EglRenderer: Quitting render thread.
I/org.webrtc.Logging(13150): EglRenderer: EglBase.create shared context
I/org.webrtc.Logging(13150): EglBase14Impl: Using OpenGL ES version 2
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 22.
I/Camera  (13150): CameraCaptureSession onClosed
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 25.
I/org.webrtc.Logging(13150): EglRenderer: Duration: 4014 ms. Frames received: 100. Dropped: 0. Rendered: 100. Render fps: 24,9. Average render time: 2627 us. Average swapBuffer time: 919 us.
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: capabilities changed: [ Transports: CELLULAR Capabilities: SUPL&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED&NOT_VCN_MANAGED LinkUpBandwidth>=15000Kbps LinkDnBandwidth>=30000Kbps Specifier: <TelephonyNetworkSpecifier [mSubId = 1]> UnderlyingNetworks: Null]
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 26.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 25.
I/org.webrtc.Logging(13150): EglRenderer: Duration: 4002 ms. Frames received: 100. Dropped: 0. Rendered: 100. Render fps: 25,0. Average render time: 3526 us. Average swapBuffer time: 926 us.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 25.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 25.
I/org.webrtc.Logging(13150): EglRenderer: Duration: 4001 ms. Frames received: 100. Dropped: 0. Rendered: 100. Render fps: 25,0. Average render time: 4961 us. Average swapBuffer time: 954 us.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 25.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 24.
I/org.webrtc.Logging(13150): EglRenderer: Duration: 4001 ms. Frames received: 96. Dropped: 0. Rendered: 96. Render fps: 24,0. Average render time: 4060 us. Average swapBuffer time: 967 us.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 25.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 25.
I/org.webrtc.Logging(13150): EglRenderer: Duration: 4002 ms. Frames received: 100. Dropped: 0. Rendered: 100. Render fps: 25,0. Average render time: 3553 us. Average swapBuffer time: 883 us.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 25.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 25.
I/org.webrtc.Logging(13150): EglRenderer: Duration: 4001 ms. Frames received: 101. Dropped: 0. Rendered: 101. Render fps: 25,2. Average render time: 5754 us. Average swapBuffer time: 947 us.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 27.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 30.
I/org.webrtc.Logging(13150): EglRenderer: Duration: 4001 ms. Frames received: 120. Dropped: 0. Rendered: 120. Render fps: 30,0. Average render time: 5182 us. Average swapBuffer time: 776 us.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 30.
I/NetworkInfoCenter(13150): network changed, action: android.net.wifi.WIFI_STATE_CHANGED
I/NetworkInfoCenter(13150): network changed, action: android.net.wifi.WIFI_STATE_CHANGED
I/NetworkInfoCenter(13150): network changed, action: android.net.wifi.WIFI_STATE_CHANGED
I/NetworkInfoCenter(13150): network changed, action: android.net.wifi.STATE_CHANGE
D/FlutterWebRTCPlugin(13150): onSelectedCandidatePairChanged
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: Network 310 is disconnected
I/NetworkInfoCenter(13150): network changed, action: android.net.conn.CONNECTIVITY_CHANGE
W/NetworkInfoCenter(13150): getNetworkType:getDataNetworkTypeForSubscriber
I/NetworkInfoCenter(13150): mNetworkConnected: true, current network: [type: MOBILE[LTE], state: CONNECTED/CONNECTED, reason: (unspecified), extra: internet, failover: false, available: true, roaming: false]
I/NetworkInfoCenter(13150): updateIPType|type:1
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: Network connectivity changed, type is: CONNECTION_4G
I/NetworkInfoCenter(13150): network changed, action: android.net.conn.CONNECTIVITY_CHANGE
W/NetworkInfoCenter(13150): getNetworkType:getDataNetworkTypeForSubscriber
I/NetworkInfoCenter(13150): mNetworkConnected: true, current network: [type: MOBILE[LTE], state: CONNECTED/CONNECTED, reason: (unspecified), extra: internet, failover: false, available: true, roaming: false]
I/NetworkInfoCenter(13150): updateIPType|type:1
W/BaseManager(13150): onNetworkChange, networkinfo is same
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 29.
I/org.webrtc.Logging(13150): EglRenderer: Duration: 4001 ms. Frames received: 117. Dropped: 0. Rendered: 117. Render fps: 29,2. Average render time: 4842 us. Average swapBuffer time: 1081 us.
I/org.webrtc.Logging(13150): CameraStatistics: Camera fps: 30.
D/FlutterWebRTCPlugin(13150): onSelectedCandidatePairChanged
D/MediaConstraintsUtils(13150): mandatory constraints are not a map
D/MediaConstraintsUtils(13150): optional constraints are not an array
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInNS(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setNS(true)
D/MediaConstraintsUtils(13150): mandatory constraints are not a map
D/MediaConstraintsUtils(13150): optional constraints are not an array
D/FlutterWebRTCPlugin(13150): onIceGatheringChangeGATHERING
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceGatheringChangeCOMPLETE
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onIceCandidate
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setAEC(true)
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: enableBuiltInNS(true)
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: setNS(true)
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: stopRecording
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: stopThread
D/AudioRecord(13150): stop mSessionID=54513
D/AudioRecord(13150): stop(7199): mActive:1
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: doAudioRecordStateCallback: STOP
I/org.webrtc.Logging(13150): WebRtcAudioEffectsExternal: release
I/org.webrtc.Logging(13150): WebRtcAudioRecordExternal: releaseAudioResources
D/AudioRecord(13150): stop mSessionID=54513
D/AudioRecord(13150): stop(7199): mActive:0
D/AudioRecord(13150): stop mSessionID=54513
D/AudioRecord(13150): stop(7199): mActive:0
D/AudioRecord(13150): stop mSessionID=54513
D/AudioRecord(13150): stop(7199): mActive:0
D/FlutterWebRTCPlugin(13150): onIceCandidate
D/FlutterWebRTCPlugin(13150): onConnectionChangeCLOSED
D/FlutterWebRTCPlugin(13150): onConnectionChangeCLOSED
I/org.webrtc.Logging(13150): NetworkMonitor: Stop monitoring with native observer -5476376646093364288
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: Unregister network callback
I/org.webrtc.Logging(13150): NetworkMonitorAutoDetect: Unregister network callback
I/org.webrtc.Logging(13150): GlShader: Deleting shader.
W/FlutterWebRTCPlugin(13150): FlutterRTCVideoRenderer.setVideoTrack, set video track to null
I/org.webrtc.Logging(13150): CameraCapturer: Stop capture
I/org.webrtc.Logging(13150): CameraCapturer: Stop capture: Nulling session
I/org.webrtc.Logging(13150): Camera2Session: Stop camera2 session on camera 1
I/org.webrtc.Logging(13150): CameraCapturer: Stop capture done
I/org.webrtc.Logging(13150): Camera2Session: Stop internal
I/org.webrtc.Logging(13150): CameraCapturer: dispose
I/org.webrtc.Logging(13150): SurfaceTextureHelper: stopListening()
I/org.webrtc.Logging(13150): CameraCapturer: Stop capture
I/org.webrtc.Logging(13150): CameraCapturer: Stop capture: No session open
I/org.webrtc.Logging(13150): CameraCapturer: Stop capture done
I/org.webrtc.Logging(13150): SurfaceTextureHelper: stopListening()
D/CameraExtImplXiaoMi(13150): releaseCameraDevice: 1
I/org.webrtc.Logging(13150): Camera2Session: Stop done
I/org.webrtc.Logging(13150): Camera2Session: Camera device closed.
D/FlutterWebRTCPlugin(13150): CameraEventsHandler.onFirstFrameAvailable
I/org.webrtc.Logging(13150): SurfaceTextureHelper: dispose()
I/org.webrtc.Logging(13150): GlShader: Deleting shader.
I/org.webrtc.Logging(13150): EglRenderer: Releasing.
I/org.webrtc.Logging(13150): GlShader: Deleting shader.
I/org.webrtc.Logging(13150): EglRenderer: eglBase detach and release.
I/org.webrtc.Logging(13150): EglRenderer: Releasing done.
I/org.webrtc.Logging(13150): EglRenderer: Quitting render thread.
fpasalioglu commented 1 year ago

any update?

@cloudwebrtc

cloudwebrtc commented 1 year ago

I'm working on an e2e test case for reconnect and should look into this issue this week.

Furkan PAŞALIOĞLU @.***> 于2022年10月24日周一 15:28写道:

any update?

@cloudwebrtc https://github.com/cloudwebrtc

— Reply to this email directly, view it on GitHub https://github.com/livekit/client-sdk-flutter/issues/189#issuecomment-1288541530, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEHJQ4US4DILUIEIXCKBQ7TWEY3DTANCNFSM6AAAAAARG3EP6Q . You are receiving this because you were mentioned.Message ID: @.***>

cloudwebrtc commented 1 year ago

fixed https://github.com/livekit/client-sdk-flutter/pull/194

fpasalioglu commented 1 year ago

@cloudwebrtc There is no problem in switching quickly between connections. However, when there is a delay of 2 seconds when switching from Cellular data to Wifi connection, the broadcaster's connection is disconnected. Can we get it reconnected in delays in network transitions?