explicit leave when disconnect requested, stop all tracks, including remote
正在显示
2 个修改的文件
包含
17 行增加
和
3 行删除
| @@ -205,8 +205,15 @@ constructor( | @@ -205,8 +205,15 @@ constructor( | ||
| 205 | 205 | ||
| 206 | sendRequest(request) | 206 | sendRequest(request) |
| 207 | } | 207 | } |
| 208 | + | ||
| 209 | + fun sendLeave() { | ||
| 210 | + val request = LivekitRtc.SignalRequest.newBuilder() | ||
| 211 | + .setLeave(LivekitRtc.LeaveRequest.newBuilder().build()) | ||
| 212 | + .build() | ||
| 213 | + sendRequest(request) | ||
| 214 | + } | ||
| 208 | 215 | ||
| 209 | - fun sendRequest(request: LivekitRtc.SignalRequest) { | 216 | + private fun sendRequest(request: LivekitRtc.SignalRequest) { |
| 210 | Timber.v { "sending request: $request" } | 217 | Timber.v { "sending request: $request" } |
| 211 | if (!isConnected || currentWs == null) { | 218 | if (!isConnected || currentWs == null) { |
| 212 | throw IllegalStateException("not connected!") | 219 | throw IllegalStateException("not connected!") |
| @@ -66,6 +66,7 @@ constructor( | @@ -66,6 +66,7 @@ constructor( | ||
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | fun disconnect() { | 68 | fun disconnect() { |
| 69 | + engine.client.sendLeave() | ||
| 69 | handleDisconnect() | 70 | handleDisconnect() |
| 70 | } | 71 | } |
| 71 | 72 | ||
| @@ -137,8 +138,14 @@ constructor( | @@ -137,8 +138,14 @@ constructor( | ||
| 137 | } | 138 | } |
| 138 | 139 | ||
| 139 | private fun handleDisconnect() { | 140 | private fun handleDisconnect() { |
| 140 | - for (track in localParticipant?.tracks.values) { | ||
| 141 | - track.track?.stop() | 141 | + for (pub in localParticipant.tracks.values) { |
| 142 | + pub.track?.stop() | ||
| 143 | + } | ||
| 144 | + // stop remote tracks too | ||
| 145 | + for (p in remoteParticipants.values) { | ||
| 146 | + for (pub in p.tracks.values) { | ||
| 147 | + pub.track?.stop() | ||
| 148 | + } | ||
| 142 | } | 149 | } |
| 143 | engine.close() | 150 | engine.close() |
| 144 | state = State.DISCONNECTED | 151 | state = State.DISCONNECTED |
-
请 注册 或 登录 后发表评论