Jean Kruger
Committed by GitHub

Fixes disconnect issue (#656)

If the track has already been disposed, the associated MediaStreamTrack is also disposed, causing unpublishTrack to throw an IllegalStateException ("MediaStreamTrack has been disposed."). To prevent this issue, dispose of the defaultTracks only after the track has been unpublished.
  1 +---
  2 +"client-sdk-android": patch
  3 +---
  4 +
  5 +Fixes disconnect issue
@@ -1550,10 +1550,6 @@ internal constructor( @@ -1550,10 +1550,6 @@ internal constructor(
1550 * @suppress 1550 * @suppress
1551 */ 1551 */
1552 fun cleanup() { 1552 fun cleanup() {
1553 - defaultAudioTrack?.dispose()  
1554 - defaultAudioTrack = null  
1555 - defaultVideoTrack?.dispose()  
1556 - defaultVideoTrack = null  
1557 for (pub in trackPublications.values) { 1553 for (pub in trackPublications.values) {
1558 val track = pub.track 1554 val track = pub.track
1559 1555
@@ -1569,6 +1565,10 @@ internal constructor( @@ -1569,6 +1565,10 @@ internal constructor(
1569 } 1565 }
1570 } 1566 }
1571 } 1567 }
  1568 + defaultAudioTrack?.dispose()
  1569 + defaultAudioTrack = null
  1570 + defaultVideoTrack?.dispose()
  1571 + defaultVideoTrack = null
1572 } 1572 }
1573 1573
1574 /** 1574 /**