Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
xuning
/
livekitAndroidXuningTest
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
davidliu
2023-11-06 12:40:00 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
GitHub
2023-11-06 12:40:00 +0900
Commit
73c093d1025204ad5a0a20d98f586f67c9d83a77
73c093d1
1 parent
b6818ac2
Fix track disposal crashing on disconnect (#307)
显示空白字符变更
内嵌
并排对比
正在显示
2 个修改的文件
包含
15 行增加
和
6 行删除
livekit-android-sdk/src/main/java/io/livekit/android/room/participant/LocalParticipant.kt
livekit-android-sdk/src/main/java/io/livekit/android/room/participant/RemoteParticipant.kt
livekit-android-sdk/src/main/java/io/livekit/android/room/participant/LocalParticipant.kt
查看文件 @
73c093d
...
...
@@ -669,6 +669,8 @@ internal constructor(
if (track != null) {
track.stop()
unpublishTrack(track)
// We have the original track object reference, meaning we own it. Dispose here.
track.dispose()
}
}
...
...
livekit-android-sdk/src/main/java/io/livekit/android/room/participant/RemoteParticipant.kt
查看文件 @
73c093d
...
...
@@ -18,7 +18,11 @@ package io.livekit.android.room.participant
import io.livekit.android.events.ParticipantEvent
import io.livekit.android.room.SignalClient
import io.livekit.android.room.track.*
import io.livekit.android.room.track.RemoteAudioTrack
import io.livekit.android.room.track.RemoteTrackPublication
import io.livekit.android.room.track.RemoteVideoTrack
import io.livekit.android.room.track.Track
import io.livekit.android.room.track.TrackException
import io.livekit.android.util.CloseableCoroutineScope
import io.livekit.android.util.LKLog
import io.livekit.android.webrtc.RTCStatsGetter
...
...
@@ -57,7 +61,7 @@ class RemoteParticipant(
info.identity,
signalClient,
ioDispatcher,
defaultDispatcher
defaultDispatcher
,
) {
super.updateFromInfo(info)
}
...
...
@@ -83,7 +87,7 @@ class RemoteParticipant(
publication = RemoteTrackPublication(
trackInfo,
participant = this,
ioDispatcher = ioDispatcher
ioDispatcher = ioDispatcher
,
)
newTrackPublications[trackSid] = publication
...
...
@@ -147,7 +151,7 @@ class RemoteParticipant(
name = "",
autoManageVideo = autoManageVideo,
dispatcher = ioDispatcher,
receiver = receiver
receiver = receiver
,
)
else -> throw TrackException.InvalidTrackTypeException("invalid track type: $kind")
...
...
@@ -176,7 +180,11 @@ class RemoteParticipant(
val track = publication.track
if (track != null) {
try {
track.stop()
} catch (e: IllegalStateException) {
// track may already be disposed, ignore.
}
internalListener?.onTrackUnsubscribed(track, publication, this)
listener?.onTrackUnsubscribed(track, publication, this)
eventBus.postEvent(ParticipantEvent.TrackUnsubscribed(this, track, publication), scope)
...
...
@@ -186,7 +194,6 @@ class RemoteParticipant(
listener?.onTrackUnpublished(publication, this)
eventBus.postEvent(ParticipantEvent.TrackUnpublished(this, publication), scope)
}
track?.dispose()
publication.track = null
}
...
...
@@ -198,7 +205,7 @@ class RemoteParticipant(
eventBus.postEvent(
ParticipantEvent.TrackSubscriptionPermissionChanged(this, pub, pub.subscriptionAllowed),
coroutineScope
coroutineScope
,
)
}
}
...
...
请
注册
或
登录
后发表评论