@@ -49,8 +49,12 @@ class DefaultAudioClientObserver: NSObject, AudioClientDelegate {
49
49
}
50
50
51
51
public func audioClientStateChanged( _ audioClientState: audio_client_state_t , status: audio_client_status_t ) {
52
- let newAudioState = Converters . AudioClientState. toSessionStateControllerAction ( state: audioClientState)
52
+ var newAudioState = Converters . AudioClientState. toSessionStateControllerAction ( state: audioClientState)
53
53
let newAudioStatus = Converters . AudioClientStatus. toMeetingSessionStatusCode ( status: status)
54
+
55
+ if newAudioStatus == . audioServerHungup || newAudioStatus == . audioJoinedFromAnotherDevice {
56
+ newAudioState = . finishDisconnecting
57
+ }
54
58
55
59
if newAudioStatus == . unknown {
56
60
logger. info ( msg: " AudioClient State rawValue: \( audioClientState. rawValue) Unknown Status rawValue: \( status. rawValue) " )
@@ -357,15 +361,15 @@ class DefaultAudioClientObserver: NSObject, AudioClientDelegate {
357
361
switch currentAudioState {
358
362
case . connecting,
359
363
. finishConnecting:
360
- if newAudioStatus == . audioServerHungup {
364
+ if newAudioStatus == . audioServerHungup || newAudioStatus == . audioJoinedFromAnotherDevice {
361
365
handleAudioSessionEndedByServer ( newAudioStatus: newAudioStatus)
362
366
} // Else no-op, client initiated stops already handled in DefaultAudioClientController.stop()
363
367
break
364
368
case . reconnecting:
365
369
notifyAudioClientObserver { ( observer: AudioVideoObserver ) in
366
370
observer. audioSessionDidCancelReconnect ( )
367
371
}
368
- if newAudioStatus == . audioServerHungup {
372
+ if newAudioStatus == . audioServerHungup || newAudioStatus == . audioJoinedFromAnotherDevice {
369
373
handleAudioSessionEndedByServer ( newAudioStatus: newAudioStatus)
370
374
} // Else no-op, client initiated stops already handled in DefaultAudioClientController.stop()
371
375
default :
0 commit comments