Skip to content

Commit 0162047

Browse files
CYGCYG
authored andcommitted
[Android]ktvapi 5.0.0 update rtc sdk to 4.3.1
1 parent 6cefda8 commit 0162047

File tree

4 files changed

+51
-49
lines changed

4 files changed

+51
-49
lines changed

KTVAPI/Android/lib_ktvapi/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ dependencies {
7676
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
7777
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
7878

79-
api "io.agora.rtc:agora-special-full:4.1.1.29"
79+
api "io.agora.rtc:full-sdk:4.3.1"
8080
implementation 'com.google.protobuf:protobuf-java:3.19.3'
8181
implementation 'com.google.protobuf:protobuf-java-util:3.19.3'
8282
}

KTVAPI/Android/lib_ktvapi/src/main/java/io/agora/ktvapi/KTVApi.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,11 @@ abstract class IKTVApiEventHandler {
226226
/**
227227
* 播放器状态变化
228228
* @param state MediaPlayer 播放状态
229-
* @param error MediaPlayer Error 信息
229+
* @param reason MediaPlayer Error 信息
230230
* @param isLocal 本地还是主唱端的 Player 信息
231231
*/
232232
open fun onMusicPlayerStateChanged(
233-
state: Constants.MediaPlayerState, error: Constants.MediaPlayerError, isLocal: Boolean
233+
state: Constants.MediaPlayerState, reason: Constants.MediaPlayerReason, isLocal: Boolean
234234
) {
235235
}
236236

KTVAPI/Android/lib_ktvapi/src/main/java/io/agora/ktvapi/KTVApiImpl.kt

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import io.agora.mediaplayer.Constants
66
import io.agora.mediaplayer.Constants.MediaPlayerState
77
import io.agora.mediaplayer.IMediaPlayer
88
import io.agora.mediaplayer.IMediaPlayerObserver
9+
import io.agora.mediaplayer.data.CacheStatistics
10+
import io.agora.mediaplayer.data.PlayerPlaybackStats
911
import io.agora.mediaplayer.data.PlayerUpdatedInfo
1012
import io.agora.mediaplayer.data.SrcInfo
1113
import io.agora.musiccontentcenter.*
@@ -22,7 +24,7 @@ class KTVApiImpl(
2224
companion object {
2325
private val scheduledThreadPool: ScheduledExecutorService = Executors.newScheduledThreadPool(5)
2426
const val tag = "KTV_API_LOG"
25-
const val version = "4.3.0"
27+
const val version = "5.0.0"
2628
const val lyricSyncVersion = 2
2729
}
2830

@@ -333,21 +335,16 @@ class KTVApiImpl(
333335
override fun enableMulitpathing(enable: Boolean) {
334336
apiReporter.reportFuncEvent("enableMulitpathing", mapOf("enable" to enable), mapOf())
335337
this.enableMultipathing = enable
336-
// mRtcEngine.setParameters("{\"rtc.enableMultipath\": $enable}")
337-
// if (enable) {
338-
// mRtcEngine.setParameters("{\"rtc.enable_tds_request_on_join\": true}")
339-
// mRtcEngine.setParameters("{\"rtc.remote_path_scheduling_strategy\": 0}")
340-
// mRtcEngine.setParameters("{\"rtc.path_scheduling_strategy\": 0}")
341-
// }
342338

343-
if (singerRole == KTVSingRole.LeadSinger || singerRole == KTVSingRole.CoSinger) {
344-
subChorusConnection?.let {
345-
mRtcEngine.updateChannelMediaOptionsEx(ChannelMediaOptions().apply {
346-
parameters =
347-
"{\"rtc.enableMultipath\": $enable, \"rtc.path_scheduling_strategy\": 0, \"rtc.remote_path_scheduling_strategy\": 0}"
348-
}, subChorusConnection)
349-
}
350-
}
339+
// TODO 4.3.1 not ready
340+
// if (singerRole == KTVSingRole.LeadSinger || singerRole == KTVSingRole.CoSinger) {
341+
// subChorusConnection?.let {
342+
// mRtcEngine.updateChannelMediaOptionsEx(ChannelMediaOptions().apply {
343+
// parameters =
344+
// "{\"rtc.enableMultipath\": $enable, \"rtc.path_scheduling_strategy\": 0, \"rtc.remote_path_scheduling_strategy\": 0}"
345+
// }, subChorusConnection)
346+
// }
347+
// }
351348
}
352349

353350
override fun switchAudioTrack(mode: AudioTrackMode) {
@@ -953,12 +950,12 @@ class KTVApiImpl(
953950

954951
private fun syncPlayState(
955952
state: MediaPlayerState,
956-
error: Constants.MediaPlayerError
953+
reason: Constants.MediaPlayerReason
957954
) {
958955
val msg: MutableMap<String?, Any?> = HashMap()
959956
msg["cmd"] = "PlayerState"
960957
msg["state"] = MediaPlayerState.getValue(state)
961-
msg["error"] = Constants.MediaPlayerError.getValue(error)
958+
msg["error"] = Constants.MediaPlayerReason.getValue(reason)
962959
val jsonMsg = JSONObject(msg)
963960
sendStreamMessageWithJsonObject(jsonMsg) {}
964961
}
@@ -1002,10 +999,11 @@ class KTVApiImpl(
1002999
channelMediaOption.enableAudioRecordingOrPlayout =
10031000
newRole != KTVSingRole.LeadSinger
10041001
channelMediaOption.clientRoleType = CLIENT_ROLE_BROADCASTER
1005-
if (enableMultipathing) {
1006-
channelMediaOption.parameters =
1007-
"{\"rtc.path_scheduling_strategy\":0, \"rtc.enableMultipath\": true, \"rtc.remote_path_scheduling_strategy\": 0}"
1008-
}
1002+
// TODO 4.3.1 not ready
1003+
// if (enableMultipathing) {
1004+
// channelMediaOption.parameters =
1005+
// "{\"rtc.path_scheduling_strategy\":0, \"rtc.enableMultipath\": true, \"rtc.remote_path_scheduling_strategy\": 0}"
1006+
// }
10091007

10101008
val rtcConnection = RtcConnection()
10111009
rtcConnection.channelId = ktvApiConfig.chorusChannelName
@@ -1341,7 +1339,7 @@ class KTVApiImpl(
13411339
ktvApiEventHandlerList.forEach {
13421340
it.onMusicPlayerStateChanged(
13431341
MediaPlayerState.getStateByValue(state),
1344-
Constants.MediaPlayerError.getErrorByValue(error),
1342+
Constants.MediaPlayerReason.getErrorByValue(error),
13451343
false
13461344
)
13471345
}
@@ -1523,10 +1521,10 @@ class KTVApiImpl(
15231521
private var duration: Long = 0
15241522
override fun onPlayerStateChanged(
15251523
state: MediaPlayerState?,
1526-
error: Constants.MediaPlayerError?
1524+
reason: Constants.MediaPlayerReason?
15271525
) {
15281526
val mediaPlayerState = state ?: return
1529-
val mediaPlayerError = error ?: return
1527+
val mediaPlayerError = reason ?: return
15301528
ktvApiLog("onPlayerStateChanged: $state")
15311529
this.mediaPlayerState = mediaPlayerState
15321530
when (mediaPlayerState) {
@@ -1613,5 +1611,9 @@ class KTVApiImpl(
16131611

16141612
override fun onPlayerInfoUpdated(info: PlayerUpdatedInfo?) {}
16151613

1614+
override fun onPlayerCacheStats(stats: CacheStatistics?) {}
1615+
1616+
override fun onPlayerPlaybackStats(stats: PlayerPlaybackStats?) {}
1617+
16161618
override fun onAudioVolumeIndication(volume: Int) {}
16171619
}

KTVAPI/Android/lib_ktvapi/src/main/java/io/agora/ktvapi/KTVGiantChorusApiImpl.kt

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ import io.agora.mediaplayer.Constants
66
import io.agora.mediaplayer.Constants.MediaPlayerState
77
import io.agora.mediaplayer.IMediaPlayer
88
import io.agora.mediaplayer.IMediaPlayerObserver
9+
import io.agora.mediaplayer.data.CacheStatistics
10+
import io.agora.mediaplayer.data.PlayerPlaybackStats
911
import io.agora.mediaplayer.data.PlayerUpdatedInfo
1012
import io.agora.mediaplayer.data.SrcInfo
1113
import io.agora.musiccontentcenter.*
1214
import io.agora.rtc2.*
1315
import io.agora.rtc2.Constants.*
14-
import io.agora.rtc2.internal.Logging
1516
import org.json.JSONException
1617
import org.json.JSONObject
1718
import java.util.concurrent.*
@@ -23,7 +24,7 @@ class KTVGiantChorusApiImpl(
2324
companion object {
2425
private val scheduledThreadPool: ScheduledExecutorService = Executors.newScheduledThreadPool(5)
2526
private const val tag = "KTV_API_LOG_GIANT"
26-
private const val version = "4.3.0"
27+
private const val version = "5.0.0"
2728
private const val lyricSyncVersion = 2
2829
}
2930

@@ -335,20 +336,15 @@ class KTVGiantChorusApiImpl(
335336
override fun enableMulitpathing(enable: Boolean) {
336337
apiReporter.reportFuncEvent("enableMulitpathing", mapOf("enable" to enable), mapOf())
337338
this.enableMultipathing = enable
338-
// mRtcEngine.setParameters("{\"rtc.enableMultipath\": $enable}")
339-
// if (enable) {
340-
// mRtcEngine.setParameters("{\"rtc.enable_tds_request_on_join\": true}")
341-
// mRtcEngine.setParameters("{\"rtc.remote_path_scheduling_strategy\": 0}")
342-
// mRtcEngine.setParameters("{\"rtc.path_scheduling_strategy\": 0}")
343-
// }
344339

345-
if (singerRole == KTVSingRole.LeadSinger || singerRole == KTVSingRole.CoSinger) {
346-
subChorusConnection?.let {
347-
mRtcEngine.updateChannelMediaOptionsEx(ChannelMediaOptions().apply {
348-
parameters = "{\"rtc.enableMultipath\": $enable, \"rtc.path_scheduling_strategy\": 0, \"rtc.remote_path_scheduling_strategy\": 0}"
349-
}, subChorusConnection)
350-
}
351-
}
340+
// TODO 4.3.1 not ready
341+
// if (singerRole == KTVSingRole.LeadSinger || singerRole == KTVSingRole.CoSinger) {
342+
// subChorusConnection?.let {
343+
// mRtcEngine.updateChannelMediaOptionsEx(ChannelMediaOptions().apply {
344+
// parameters = "{\"rtc.enableMultipath\": $enable, \"rtc.path_scheduling_strategy\": 0, \"rtc.remote_path_scheduling_strategy\": 0}"
345+
// }, subChorusConnection)
346+
// }
347+
// }
352348
}
353349

354350
override fun renewToken(rtmToken: String, chorusChannelRtcToken: String) {
@@ -761,7 +757,7 @@ class KTVGiantChorusApiImpl(
761757
singChannelMediaOptions.autoSubscribeAudio = true
762758
singChannelMediaOptions.publishMicrophoneTrack = true
763759
singChannelMediaOptions.clientRoleType = CLIENT_ROLE_BROADCASTER
764-
singChannelMediaOptions.parameters = "{\"che.audio.max_mixed_participants\": 8}"
760+
//singChannelMediaOptions.parameters = "{\"che.audio.max_mixed_participants\": 8}" // TODO 4.3.1 not ready
765761
if (newRole == KTVSingRole.LeadSinger) {
766762
// 主唱不参加TopN
767763
singChannelMediaOptions.isAudioFilterable = false
@@ -1008,12 +1004,12 @@ class KTVGiantChorusApiImpl(
10081004

10091005
private fun syncPlayState(
10101006
state: Constants.MediaPlayerState,
1011-
error: Constants.MediaPlayerError
1007+
error: Constants.MediaPlayerReason
10121008
) {
10131009
val msg: MutableMap<String?, Any?> = HashMap()
10141010
msg["cmd"] = "PlayerState"
10151011
msg["state"] = Constants.MediaPlayerState.getValue(state)
1016-
msg["error"] = Constants.MediaPlayerError.getValue(error)
1012+
msg["error"] = Constants.MediaPlayerReason.getValue(error)
10171013
val jsonMsg = JSONObject(msg)
10181014
sendStreamMessageWithJsonObject(jsonMsg) {}
10191015
}
@@ -1354,7 +1350,7 @@ class KTVGiantChorusApiImpl(
13541350
}
13551351
ktvApiEventHandlerList.forEach { it.onMusicPlayerStateChanged(
13561352
MediaPlayerState.getStateByValue(state),
1357-
Constants.MediaPlayerError.getErrorByValue(error),
1353+
Constants.MediaPlayerReason.getErrorByValue(error),
13581354
false
13591355
) }
13601356
} else if (jsonMsg.getString("cmd") == "setVoicePitch") {
@@ -1468,11 +1464,11 @@ class KTVGiantChorusApiImpl(
14681464
private var duration: Long = 0
14691465
override fun onPlayerStateChanged(
14701466
state: Constants.MediaPlayerState?,
1471-
error: Constants.MediaPlayerError?
1467+
reason: Constants.MediaPlayerReason?
14721468
) {
14731469
val mediaPlayerState = state ?: return
1474-
val mediaPlayerError = error ?: return
1475-
ktvApiLog("onPlayerStateChanged called, state: $mediaPlayerState, error: $error")
1470+
val mediaPlayerError = reason ?: return
1471+
ktvApiLog("onPlayerStateChanged called, state: $mediaPlayerState, error: $mediaPlayerError")
14761472
this.mediaPlayerState = mediaPlayerState
14771473
when (mediaPlayerState) {
14781474
MediaPlayerState.PLAYER_STATE_OPEN_COMPLETED -> {
@@ -1557,5 +1553,9 @@ class KTVGiantChorusApiImpl(
15571553

15581554
override fun onPlayerInfoUpdated(info: PlayerUpdatedInfo?) {}
15591555

1556+
override fun onPlayerCacheStats(stats: CacheStatistics?) {}
1557+
1558+
override fun onPlayerPlaybackStats(stats: PlayerPlaybackStats?) {}
1559+
15601560
override fun onAudioVolumeIndication(volume: Int) {}
15611561
}

0 commit comments

Comments
 (0)