Committed by
GitHub
Stop listening on SurfaceTextureHelperCloser before disposing (#171)
正在显示
2 个修改的文件
包含
25 行增加
和
2 行删除
livekit-android-sdk/src/main/java/io/livekit/android/memory/SurfaceTextureHelperCloser.kt
0 → 100644
| 1 | +package io.livekit.android.memory | ||
| 2 | + | ||
| 3 | +import org.webrtc.SurfaceTextureHelper | ||
| 4 | +import java.io.Closeable | ||
| 5 | + | ||
| 6 | +internal class SurfaceTextureHelperCloser(private val surfaceTextureHelper: SurfaceTextureHelper) : Closeable { | ||
| 7 | + private var isClosed = false | ||
| 8 | + override fun close() { | ||
| 9 | + if (!isClosed) { | ||
| 10 | + isClosed = true | ||
| 11 | + surfaceTextureHelper.stopListening() | ||
| 12 | + surfaceTextureHelper.dispose() | ||
| 13 | + } | ||
| 14 | + } | ||
| 15 | +} |
| @@ -9,6 +9,7 @@ import dagger.assisted.Assisted | @@ -9,6 +9,7 @@ import dagger.assisted.Assisted | ||
| 9 | import dagger.assisted.AssistedFactory | 9 | import dagger.assisted.AssistedFactory |
| 10 | import dagger.assisted.AssistedInject | 10 | import dagger.assisted.AssistedInject |
| 11 | import io.livekit.android.memory.CloseableManager | 11 | import io.livekit.android.memory.CloseableManager |
| 12 | +import io.livekit.android.memory.SurfaceTextureHelperCloser | ||
| 12 | import io.livekit.android.room.DefaultsManager | 13 | import io.livekit.android.room.DefaultsManager |
| 13 | import io.livekit.android.room.track.video.Camera1CapturerWithSize | 14 | import io.livekit.android.room.track.video.Camera1CapturerWithSize |
| 14 | import io.livekit.android.room.track.video.Camera2CapturerWithSize | 15 | import io.livekit.android.room.track.video.Camera2CapturerWithSize |
| @@ -218,7 +219,11 @@ constructor( | @@ -218,7 +219,11 @@ constructor( | ||
| 218 | name = name, | 219 | name = name, |
| 219 | rtcTrack = rtcTrack | 220 | rtcTrack = rtcTrack |
| 220 | ) | 221 | ) |
| 221 | - track.closeableManager.registerResource(rtcTrack) { surfaceTextureHelper.dispose() } | 222 | + |
| 223 | + track.closeableManager.registerResource( | ||
| 224 | + rtcTrack, | ||
| 225 | + SurfaceTextureHelperCloser(surfaceTextureHelper) | ||
| 226 | + ) | ||
| 222 | return track | 227 | return track |
| 223 | } | 228 | } |
| 224 | internal fun createTrack( | 229 | internal fun createTrack( |
| @@ -254,7 +259,10 @@ constructor( | @@ -254,7 +259,10 @@ constructor( | ||
| 254 | rtcTrack = rtcTrack | 259 | rtcTrack = rtcTrack |
| 255 | ) | 260 | ) |
| 256 | 261 | ||
| 257 | - track.closeableManager.registerResource(rtcTrack) { surfaceTextureHelper.dispose() } | 262 | + track.closeableManager.registerResource( |
| 263 | + rtcTrack, | ||
| 264 | + SurfaceTextureHelperCloser(surfaceTextureHelper) | ||
| 265 | + ) | ||
| 258 | 266 | ||
| 259 | return track | 267 | return track |
| 260 | } | 268 | } |
-
请 注册 或 登录 后发表评论