Skip to content

Commit

Permalink
feat: support native 3.5.2 (#525)
Browse files Browse the repository at this point in the history
* feat: support 3.5.2
  • Loading branch information
LichKing-2234 committed Dec 13, 2021
1 parent e99117e commit 5457e35
Show file tree
Hide file tree
Showing 20 changed files with 1,115 additions and 916 deletions.
2 changes: 1 addition & 1 deletion android/build.gradle
Expand Up @@ -50,7 +50,7 @@ android {
}

dependencies {
api 'com.github.agorabuilder:native-full-sdk:3.5.1'
api 'com.github.agorabuilder:native-full-sdk:3.5.2'

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${safeExtGet('kotlin_version', '1.3.72')}"
}
10 changes: 10 additions & 0 deletions android/src/main/java/io/agora/rtc/base/BeanCovertor.kt
Expand Up @@ -12,6 +12,7 @@ import io.agora.rtc.live.LiveTranscoding.TranscodingUser
import io.agora.rtc.models.ChannelMediaOptions
import io.agora.rtc.models.ClientRoleOptions
import io.agora.rtc.models.DataStreamConfig
import io.agora.rtc.models.EchoTestConfiguration
import io.agora.rtc.video.*

fun mapToVideoDimensions(map: Map<*, *>): VideoEncoderConfiguration.VideoDimensions {
Expand Down Expand Up @@ -264,3 +265,12 @@ fun mapToVirtualBackgroundSource(map: Map<*, *>): VirtualBackgroundSource {
(map["blur_degree"] as? Int)?.let { blur_degree = it }
}
}

fun mapToEchoTestConfiguration(map: Map<*, *>): EchoTestConfiguration {
return EchoTestConfiguration().apply {
(map["enableAudio"] as? Boolean)?.let { enableAudio = it }
(map["enableVideo"] as? Boolean)?.let { enableVideo = it }
(map["token"] as? String)?.let { token = it }
(map["channelId"] as? String)?.let { channelId = it }
}
}
33 changes: 29 additions & 4 deletions android/src/main/java/io/agora/rtc/base/RtcEngine.kt
Expand Up @@ -68,6 +68,8 @@ class IRtcEngine {
fun setLocalAccessPoint(params: Map<String, *>, callback: Callback)

fun enableVirtualBackground(params: Map<String, *>, callback: Callback)

fun takeSnapshot(params: Map<String, *>, callback: Callback)
}

interface RtcUserInfoInterface {
Expand Down Expand Up @@ -382,7 +384,10 @@ class IRtcEngine {
}

open class RtcEngineFactory {
open fun create(params: Map<String, *>, rtcEngineEventHandler: RtcEngineEventHandler): RtcEngine? {
open fun create(
params: Map<String, *>,
rtcEngineEventHandler: RtcEngineEventHandler
): RtcEngine? {
val engine = RtcEngineEx.create(mapToRtcEngineConfig(params["config"] as Map<*, *>).apply {
mContext = params["context"] as Context
mEventHandler = rtcEngineEventHandler
Expand All @@ -401,8 +406,10 @@ open class RtcEngineManager(
private var mediaObserver: MediaObserver? = null

fun release() {
RtcEngine.destroy()
engine = null
if (engine != null) {
RtcEngine.destroy()
engine = null
}
mediaObserver = null
}

Expand Down Expand Up @@ -578,6 +585,16 @@ open class RtcEngineManager(
)
}

override fun takeSnapshot(params: Map<String, *>, callback: Callback) {
callback.code(
engine?.takeSnapshot(
params["channel"] as String,
(params["uid"] as Number).toNativeUInt(),
params["filePath"] as String
)
)
}

override fun registerLocalUserAccount(params: Map<String, *>, callback: Callback) {
callback.code(
engine?.registerLocalUserAccount(
Expand Down Expand Up @@ -1139,7 +1156,15 @@ open class RtcEngineManager(
}

override fun startEchoTest(params: Map<String, *>, callback: Callback) {
callback.code(engine?.startEchoTest((params["intervalInSeconds"] as Number).toInt()))
(params["intervalInSeconds"] as? Number)?.let { intervalInSeconds ->
callback.code(engine?.startEchoTest(intervalInSeconds.toInt()))
return@startEchoTest
}
(params["config"] as? Map<*, *>)?.let { config ->
callback.code(engine?.startEchoTest(mapToEchoTestConfiguration(config)))
return@startEchoTest
}
callback.code(engine?.startEchoTest())
}

override fun stopEchoTest(callback: Callback) {
Expand Down
23 changes: 22 additions & 1 deletion android/src/main/java/io/agora/rtc/base/RtcEngineEvent.kt
Expand Up @@ -88,6 +88,7 @@ class RtcEngineEvents {
const val UserSuperResolutionEnabled = "UserSuperResolutionEnabled"
const val UploadLogResult = "UploadLogResult"
const val VirtualBackgroundSourceEnabled = "VirtualBackgroundSourceEnabled"
const val SnapshotTaken = "SnapshotTaken"

fun toMap(): Map<String, String> {
return hashMapOf(
Expand Down Expand Up @@ -171,7 +172,8 @@ class RtcEngineEvents {
"RtmpStreamingEvent" to RtmpStreamingEvent,
"UserSuperResolutionEnabled" to UserSuperResolutionEnabled,
"UploadLogResult" to UploadLogResult,
"VirtualBackgroundSourceEnabled" to VirtualBackgroundSourceEnabled
"VirtualBackgroundSourceEnabled" to VirtualBackgroundSourceEnabled,
"SnapshotTaken" to SnapshotTaken
)
}
}
Expand Down Expand Up @@ -694,4 +696,23 @@ class RtcEngineEventHandler(
) {
callback(RtcEngineEvents.VirtualBackgroundSourceEnabled, enabled, reason)
}

override fun onSnapshotTaken(
channel: String?,
uid: Int,
filePath: String?,
width: Int,
height: Int,
errCode: Int
) {
callback(
RtcEngineEvents.SnapshotTaken,
channel,
uid.toUInt().toLong(),
filePath,
width,
height,
errCode
)
}
}
4 changes: 2 additions & 2 deletions android/src/main/java/io/agora/rtc/base/RtcEnginePlugin.kt
Expand Up @@ -12,8 +12,8 @@ interface RtcEnginePlugin {
* This callback will be called when the [RtcEngine] is created by
* [RtcEngine.createWithContext](https://docs.agora.io/cn/Video/API%20Reference/flutter/agora_rtc_engine/RtcEngine/createWithContext.html)
* function from flutter.
*
* NOTE that you should not call [RtcEngine.destroy], because it will also destroy the `RtcEngine`
*
* NOTE that you should not call [RtcEngine.destroy], because it will also destroy the `RtcEngine`
* used by flutter side.
*
* @param rtcEngine The same [RtcEngine] used by flutter side
Expand Down

0 comments on commit 5457e35

Please sign in to comment.