正在显示
4 个修改的文件
包含
25 行增加
和
4 行删除
| 1 | package io.livekit.android | 1 | package io.livekit.android |
| 2 | 2 | ||
| 3 | +import io.livekit.android.room.ProtocolVersion | ||
| 3 | import org.webrtc.PeerConnection | 4 | import org.webrtc.PeerConnection |
| 4 | 5 | ||
| 5 | 6 | ||
| @@ -17,6 +18,11 @@ data class ConnectOptions( | @@ -17,6 +18,11 @@ data class ConnectOptions( | ||
| 17 | * capture and publish video track on connect, defaults to false | 18 | * capture and publish video track on connect, defaults to false |
| 18 | */ | 19 | */ |
| 19 | val video: Boolean = false, | 20 | val video: Boolean = false, |
| 21 | + | ||
| 22 | + /** | ||
| 23 | + * the protocol version to use with the server. | ||
| 24 | + */ | ||
| 25 | + val protocolVersion: ProtocolVersion = ProtocolVersion.v8 | ||
| 20 | ) { | 26 | ) { |
| 21 | internal var reconnect: Boolean = false | 27 | internal var reconnect: Boolean = false |
| 22 | } | 28 | } |
| @@ -4,6 +4,7 @@ import android.app.Application | @@ -4,6 +4,7 @@ import android.app.Application | ||
| 4 | import android.content.Context | 4 | import android.content.Context |
| 5 | import io.livekit.android.dagger.DaggerLiveKitComponent | 5 | import io.livekit.android.dagger.DaggerLiveKitComponent |
| 6 | import io.livekit.android.dagger.create | 6 | import io.livekit.android.dagger.create |
| 7 | +import io.livekit.android.room.ProtocolVersion | ||
| 7 | import io.livekit.android.room.Room | 8 | import io.livekit.android.room.Room |
| 8 | import io.livekit.android.room.RoomListener | 9 | import io.livekit.android.room.RoomListener |
| 9 | import io.livekit.android.util.LKLog | 10 | import io.livekit.android.util.LKLog |
| @@ -82,6 +83,7 @@ class LiveKit { | @@ -82,6 +83,7 @@ class LiveKit { | ||
| 82 | * @param url URL to LiveKit server (i.e. ws://mylivekitdeploy.io) | 83 | * @param url URL to LiveKit server (i.e. ws://mylivekitdeploy.io) |
| 83 | * @param listener Listener to Room events. LiveKit interactions take place with these callbacks | 84 | * @param listener Listener to Room events. LiveKit interactions take place with these callbacks |
| 84 | */ | 85 | */ |
| 86 | + @Deprecated("Use LiveKit.create and Room.connect instead. This is limited to max protocol 7.") | ||
| 85 | suspend fun connect( | 87 | suspend fun connect( |
| 86 | appContext: Context, | 88 | appContext: Context, |
| 87 | url: String, | 89 | url: String, |
| @@ -94,7 +96,11 @@ class LiveKit { | @@ -94,7 +96,11 @@ class LiveKit { | ||
| 94 | val room = create(appContext, roomOptions, overrides) | 96 | val room = create(appContext, roomOptions, overrides) |
| 95 | 97 | ||
| 96 | room.listener = listener | 98 | room.listener = listener |
| 97 | - room.connect(url, token, options) | 99 | + |
| 100 | + val protocolVersion = maxOf(options.protocolVersion, ProtocolVersion.v7) | ||
| 101 | + val connectOptions = options.copy(protocolVersion = protocolVersion) | ||
| 102 | + | ||
| 103 | + room.connect(url, token, connectOptions) | ||
| 98 | return room | 104 | return room |
| 99 | } | 105 | } |
| 100 | 106 |
| @@ -128,6 +128,7 @@ constructor( | @@ -128,6 +128,7 @@ constructor( | ||
| 128 | 128 | ||
| 129 | val queryParams = mutableListOf<Pair<String, String>>() | 129 | val queryParams = mutableListOf<Pair<String, String>>() |
| 130 | queryParams.add(CONNECT_QUERY_TOKEN to token) | 130 | queryParams.add(CONNECT_QUERY_TOKEN to token) |
| 131 | + queryParams.add(CONNECT_QUERY_PROTOCOL to options.protocolVersion.value.toString()) | ||
| 131 | 132 | ||
| 132 | if (options.reconnect) { | 133 | if (options.reconnect) { |
| 133 | queryParams.add(CONNECT_QUERY_RECONNECT to 1.toString()) | 134 | queryParams.add(CONNECT_QUERY_RECONNECT to 1.toString()) |
| @@ -142,7 +143,6 @@ constructor( | @@ -142,7 +143,6 @@ constructor( | ||
| 142 | // Client info | 143 | // Client info |
| 143 | queryParams.add(CONNECT_QUERY_SDK to "android") | 144 | queryParams.add(CONNECT_QUERY_SDK to "android") |
| 144 | queryParams.add(CONNECT_QUERY_VERSION to clientInfo.version) | 145 | queryParams.add(CONNECT_QUERY_VERSION to clientInfo.version) |
| 145 | - queryParams.add(CONNECT_QUERY_PROTOCOL to clientInfo.protocol.toString()) | ||
| 146 | queryParams.add(CONNECT_QUERY_DEVICE_MODEL to clientInfo.deviceModel) | 146 | queryParams.add(CONNECT_QUERY_DEVICE_MODEL to clientInfo.deviceModel) |
| 147 | queryParams.add(CONNECT_QUERY_OS to clientInfo.os) | 147 | queryParams.add(CONNECT_QUERY_OS to clientInfo.os) |
| 148 | queryParams.add(CONNECT_QUERY_OS_VERSION to clientInfo.osVersion) | 148 | queryParams.add(CONNECT_QUERY_OS_VERSION to clientInfo.osVersion) |
| @@ -604,7 +604,6 @@ constructor( | @@ -604,7 +604,6 @@ constructor( | ||
| 604 | const val SD_TYPE_ANSWER = "answer" | 604 | const val SD_TYPE_ANSWER = "answer" |
| 605 | const val SD_TYPE_OFFER = "offer" | 605 | const val SD_TYPE_OFFER = "offer" |
| 606 | const val SD_TYPE_PRANSWER = "pranswer" | 606 | const val SD_TYPE_PRANSWER = "pranswer" |
| 607 | - const val PROTOCOL_VERSION = 7 | ||
| 608 | const val SDK_TYPE = "android" | 607 | const val SDK_TYPE = "android" |
| 609 | 608 | ||
| 610 | private val skipQueueTypes = listOf( | 609 | private val skipQueueTypes = listOf( |
| @@ -627,4 +626,15 @@ constructor( | @@ -627,4 +626,15 @@ constructor( | ||
| 627 | // iceServer("stun:stun4.l.google.com:19302"), | 626 | // iceServer("stun:stun4.l.google.com:19302"), |
| 628 | ) | 627 | ) |
| 629 | } | 628 | } |
| 629 | +} | ||
| 630 | + | ||
| 631 | +enum class ProtocolVersion(val value: Int) { | ||
| 632 | + v1(1), | ||
| 633 | + v2(2), | ||
| 634 | + v3(3), | ||
| 635 | + v4(4), | ||
| 636 | + v5(5), | ||
| 637 | + v6(6), | ||
| 638 | + v7(7), | ||
| 639 | + v8(8), | ||
| 630 | } | 640 | } |
| @@ -7,7 +7,6 @@ import livekit.LivekitModels | @@ -7,7 +7,6 @@ import livekit.LivekitModels | ||
| 7 | 7 | ||
| 8 | internal fun getClientInfo() = with(LivekitModels.ClientInfo.newBuilder()) { | 8 | internal fun getClientInfo() = with(LivekitModels.ClientInfo.newBuilder()) { |
| 9 | sdk = LivekitModels.ClientInfo.SDK.ANDROID | 9 | sdk = LivekitModels.ClientInfo.SDK.ANDROID |
| 10 | - protocol = SignalClient.PROTOCOL_VERSION | ||
| 11 | version = BuildConfig.VERSION_NAME | 10 | version = BuildConfig.VERSION_NAME |
| 12 | os = SignalClient.SDK_TYPE | 11 | os = SignalClient.SDK_TYPE |
| 13 | osVersion = Build.VERSION.RELEASE ?: "" | 12 | osVersion = Build.VERSION.RELEASE ?: "" |
-
请 注册 或 登录 后发表评论