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
David Liu
2021-03-28 00:00:54 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
cd8eac7664b2fa8e1cd0093250ef1f763c9af4c4
cd8eac76
1 parent
51bedead
Use PeerConnectionTransport setRemoteDescription
显示空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
14 行增加
和
14 行删除
livekit-android-sdk/src/main/java/io/livekit/android/room/PeerConnectionTransport.kt
livekit-android-sdk/src/main/java/io/livekit/android/room/RTCEngine.kt
livekit-android-sdk/src/main/java/io/livekit/android/room/util/CoroutineSdpObserver.kt
livekit-android-sdk/src/main/java/io/livekit/android/room/PeerConnectionTransport.kt
查看文件 @
cd8eac7
...
...
@@ -3,7 +3,12 @@ package io.livekit.android.room
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import org.webrtc.*
import io.livekit.android.room.util.CoroutineSdpObserver
import io.livekit.android.util.Either
import org.webrtc.IceCandidate
import org.webrtc.PeerConnection
import org.webrtc.PeerConnectionFactory
import org.webrtc.SessionDescription
/**
* @suppress
...
...
@@ -30,25 +35,20 @@ constructor(
}
}
fun setRemoteDescription(sd: SessionDescription) {
peerConnection.setRemoteDescription(object : SdpObserver {
override fun onCreateSuccess(p0: SessionDescription?) {
}
suspend fun setRemoteDescription(sd: SessionDescription): Either<Unit, String?> {
val observer = object : CoroutineSdpObserver() {
override fun onSetSuccess() {
pendingCandidates.forEach { pending ->
peerConnection.addIceCandidate(pending)
}
pendingCandidates.clear()
super.onSetSuccess()
}
override fun onCreateFailure(p0: String?) {
}
override fun onSetFailure(p0: String?) {
}
}, sd)
peerConnection.setRemoteDescription(observer, sd)
return observer.awaitSet()
}
fun close() {
...
...
livekit-android-sdk/src/main/java/io/livekit/android/room/RTCEngine.kt
查看文件 @
cd8eac7
...
...
@@ -190,7 +190,7 @@ constructor(
Timber.v { "received server answer: ${sessionDescription.type}, ${publisher.peerConnection.signalingState()}" }
coroutineScope.launch {
Timber.i { sessionDescription.toString() }
when (val outcome = publisher.
peerConnection.
setRemoteDescription(sessionDescription)) {
when (val outcome = publisher.setRemoteDescription(sessionDescription)) {
is Either.Left -> {
if (!rtcConnected) {
onRTCConnected()
...
...
@@ -208,7 +208,7 @@ constructor(
coroutineScope.launch {
run<Unit> {
when (val outcome =
subscriber.
peerConnection.
setRemoteDescription(sessionDescription)) {
subscriber.setRemoteDescription(sessionDescription)) {
is Either.Right -> {
Timber.e { "error setting remote description for answer: ${outcome.value} " }
return@launch
...
...
livekit-android-sdk/src/main/java/io/livekit/android/room/util/CoroutineSdpObserver.kt
查看文件 @
cd8eac7
...
...
@@ -9,7 +9,7 @@ import kotlin.coroutines.Continuation
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
class CoroutineSdpObserver : SdpObserver {
open
class CoroutineSdpObserver : SdpObserver {
private var createOutcome: Either<SessionDescription, String?>? = null
set(value) {
field = value
...
...
请
注册
或
登录
后发表评论