Skip to content

Commit

Permalink
feat: support native 3.5.0.2
Browse files Browse the repository at this point in the history
  • Loading branch information
LichKing-2234 committed Sep 3, 2021
1 parent 79ff77a commit 7c9ed81
Show file tree
Hide file tree
Showing 20 changed files with 338 additions and 61 deletions.
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ android {
}

dependencies {
api 'com.github.agorabuilder:native-full-sdk:3.4.6'
api 'com.github.agorabuilder:native-full-sdk:3.5.0.2'

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${safeExtGet('kotlin_version', '1.3.72')}"
}
27 changes: 23 additions & 4 deletions android/src/main/java/io/agora/rtc/base/Annotations.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import io.agora.rtc.RtcEngineConfig;
import io.agora.rtc.video.BeautyOptions;
import io.agora.rtc.video.VideoCanvas;
import io.agora.rtc.video.VirtualBackgroundSource;

@SuppressWarnings("deprecation")
public class Annotations {
Expand Down Expand Up @@ -326,10 +327,10 @@ public class Annotations {
Constants.RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE,
Constants.RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_IS_NULL,
Constants.RELAY_EVENT_VIDEO_PROFILE_UPDATE,
Constants.RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS,
Constants.RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_FAILED,
Constants.RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS,
Constants.RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_FAILED,
// Constants.RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS,
// Constants.RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_FAILED,
// Constants.RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS,
// Constants.RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_FAILED,
})
@Retention(RetentionPolicy.SOURCE)
public @interface AgoraChannelMediaRelayEvent {
Expand Down Expand Up @@ -968,4 +969,22 @@ public class Annotations {
@Retention(RetentionPolicy.SOURCE)
public @interface AgoraSuperResolutionStateReason {
}

@IntDef({
VirtualBackgroundSource.BACKGROUND_COLOR,
VirtualBackgroundSource.BACKGROUND_IMG,
})
@Retention(RetentionPolicy.SOURCE)
public @interface AgoraVirtualBackgroundSourceType {
}

@IntDef({
Constants.VBS_STATE_REASON_SUCCESS,
Constants.VBS_STATE_REASON_IMAGE_NOT_EXIST,
Constants.VBS_STATE_REASON_COLOR_FORMAT_NOT_SUPPORTED,
Constants.VBS_STATE_REASON_DEVICE_NOT_SUPPORTED,
})
@Retention(RetentionPolicy.SOURCE)
public @interface AgoraVirtualBackgroundSourceStateReason {
}
}
8 changes: 8 additions & 0 deletions android/src/main/java/io/agora/rtc/base/BeanCovertor.kt
Original file line number Diff line number Diff line change
Expand Up @@ -255,3 +255,11 @@ fun mapToDataStreamConfig(map: Map<*, *>): DataStreamConfig {
(map["ordered"] as? Boolean)?.let { ordered = it }
}
}

fun mapToVirtualBackgroundSource(map: Map<*, *>): VirtualBackgroundSource {
return VirtualBackgroundSource().apply {
(map["backgroundSourceType"] as? Number)?.let { backgroundSourceType = it.toInt() }
(map["color"] as? Map<*, *>)?.let { color = mapToColor(it) }
(map["source"] as? String)?.let { source = it }
}
}
7 changes: 5 additions & 2 deletions android/src/main/java/io/agora/rtc/base/RtcChannel.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.agora.rtc.base

import io.agora.rtc.Constants
import io.agora.rtc.IMetadataObserver
import io.agora.rtc.RtcChannel
import io.agora.rtc.RtcEngine
Expand Down Expand Up @@ -345,11 +346,13 @@ class RtcChannelManager(
}

override fun pauseAllChannelMediaRelay(params: Map<String, *>, callback: Callback) {
callback.code(this[params["channelId"] as String]?.pauseAllChannelMediaRelay())
callback.code(-Constants.ERR_NOT_SUPPORTED)
// callback.code(this[params["channelId"] as String]?.pauseAllChannelMediaRelay())
}

override fun resumeAllChannelMediaRelay(params: Map<String, *>, callback: Callback) {
callback.code(this[params["channelId"] as String]?.resumeAllChannelMediaRelay())
callback.code(-Constants.ERR_NOT_SUPPORTED)
// callback.code(this[params["channelId"] as String]?.resumeAllChannelMediaRelay())
}

override fun setRemoteVideoStreamType(params: Map<String, *>, callback: Callback) {
Expand Down
17 changes: 15 additions & 2 deletions android/src/main/java/io/agora/rtc/base/RtcEngine.kt
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ class IRtcEngine {
fun uploadLogFile(callback: Callback)

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

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

interface RtcUserInfoInterface {
Expand Down Expand Up @@ -542,6 +544,15 @@ class RtcEngineManager(
)
}

override fun enableVirtualBackground(params: Map<String, *>, callback: Callback) {
callback.code(
engine?.enableVirtualBackground(
params["enabled"] as Boolean,
mapToVirtualBackgroundSource(params["backgroundSource"] as Map<*, *>)
)
)
}

override fun registerLocalUserAccount(params: Map<String, *>, callback: Callback) {
callback.code(
engine?.registerLocalUserAccount(
Expand Down Expand Up @@ -1022,11 +1033,13 @@ class RtcEngineManager(
}

override fun pauseAllChannelMediaRelay(callback: Callback) {
callback.code(engine?.pauseAllChannelMediaRelay())
callback.code(-Constants.ERR_NOT_SUPPORTED)
// callback.code(engine?.pauseAllChannelMediaRelay())
}

override fun resumeAllChannelMediaRelay(callback: Callback) {
callback.code(engine?.resumeAllChannelMediaRelay())
callback.code(-Constants.ERR_NOT_SUPPORTED)
// callback.code(engine?.resumeAllChannelMediaRelay())
}

override fun setDefaultAudioRoutetoSpeakerphone(params: Map<String, *>, callback: Callback) {
Expand Down
11 changes: 10 additions & 1 deletion android/src/main/java/io/agora/rtc/base/RtcEngineEvent.kt
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ class RtcEngineEvents {
const val RtmpStreamingEvent = "RtmpStreamingEvent"
const val UserSuperResolutionEnabled = "UserSuperResolutionEnabled"
const val UploadLogResult = "UploadLogResult"
const val VirtualBackgroundSourceEnabled = "VirtualBackgroundSourceEnabled"

fun toMap(): Map<String, String> {
return hashMapOf(
Expand Down Expand Up @@ -167,7 +168,8 @@ class RtcEngineEvents {
"VideoSubscribeStateChanged" to VideoSubscribeStateChanged,
"RtmpStreamingEvent" to RtmpStreamingEvent,
"UserSuperResolutionEnabled" to UserSuperResolutionEnabled,
"UploadLogResult" to UploadLogResult
"UploadLogResult" to UploadLogResult,
"VirtualBackgroundSourceEnabled" to VirtualBackgroundSourceEnabled
)
}
}
Expand Down Expand Up @@ -679,4 +681,11 @@ class RtcEngineEventHandler(
) {
callback(RtcEngineEvents.UploadLogResult, requestId, success, reason)
}

override fun onVirtualBackgroundSourceEnabled(
enabled: Boolean,
@Annotations.AgoraVirtualBackgroundSourceStateReason reason: Int
) {
callback(RtcEngineEvents.VirtualBackgroundSourceEnabled, enabled, reason)
}
}
2 changes: 2 additions & 0 deletions git.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
git subtree pull --prefix android/src/main/java/io/agora/rtc/base Android "$1" --squash
git subtree pull --prefix ios/Classes/Base iOS "$1" --squash
16 changes: 16 additions & 0 deletions ios/Classes/Base/BeanCovertor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -416,3 +416,19 @@ func mapToDataStreamConfig(_ map: [String: Any]) -> AgoraDataStreamConfig {
}
return config
}

func mapToVirtualBackgroundSource(_ map: [String: Any]) -> AgoraVirtualBackgroundSource {
let backgroundSource = AgoraVirtualBackgroundSource()
if let backgroundSourceType = map["backgroundSourceType"] as? NSNumber {
if let backgroundSourceType = AgoraVirtualBackgroundSourceType(rawValue: backgroundSourceType.uintValue) {
backgroundSource.backgroundSourceType = backgroundSourceType
}
}
if let color = map["color"] as? [String: Any] {
var red: CGFloat = 0, green: CGFloat = 0, blue: CGFloat = 0, alpha: CGFloat = 0
mapToColor(color).getRed(&red, green: &green, blue: &blue, alpha: &alpha)
backgroundSource.color = UInt(red * 255.0) << 16 + UInt(green * 255.0) << 8 + UInt(blue * 255.0)
}
backgroundSource.source = map["source"] as? String
return backgroundSource
}
20 changes: 11 additions & 9 deletions ios/Classes/Base/RtcChannel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -190,11 +190,11 @@ class RtcChannelManager: NSObject, RtcChannelInterface {
}

@objc func joinChannel(_ params: NSDictionary, _ callback: Callback) {
callback.code(self[params["channelId"] as! String]?.join(byToken: params["token"] as? String, info: params["optionalInfo"] as? String, uid: (params["optionalUid"] as! NSNumber).uintValue, options: mapToChannelMediaOptions(params["options"] as! Dictionary)))
callback.code(self[params["channelId"] as! String]?.join(byToken: params["token"] as? String, info: params["optionalInfo"] as? String, uid: (params["optionalUid"] as! NSNumber).uintValue, options: mapToChannelMediaOptions(params["options"] as! [String: Any])))
}

@objc func joinChannelWithUserAccount(_ params: NSDictionary, _ callback: Callback) {
callback.code(self[params["channelId"] as! String]?.join(byUserAccount: params["userAccount"] as! String, token: params["token"] as? String, options: mapToChannelMediaOptions(params["options"] as! Dictionary)))
callback.code(self[params["channelId"] as! String]?.join(byUserAccount: params["userAccount"] as! String, token: params["token"] as? String, options: mapToChannelMediaOptions(params["options"] as! [String: Any])))
}

@objc func leaveChannel(_ params: NSDictionary, _ callback: Callback) {
Expand Down Expand Up @@ -258,7 +258,7 @@ class RtcChannelManager: NSObject, RtcChannelInterface {
}

@objc func setLiveTranscoding(_ params: NSDictionary, _ callback: Callback) {
callback.code(self[params["channelId"] as! String]?.setLiveTranscoding(mapToLiveTranscoding(params["transcoding"] as! Dictionary)))
callback.code(self[params["channelId"] as! String]?.setLiveTranscoding(mapToLiveTranscoding(params["transcoding"] as! [String: Any])))
}

@objc func addPublishStreamUrl(_ params: NSDictionary, _ callback: Callback) {
Expand All @@ -270,11 +270,11 @@ class RtcChannelManager: NSObject, RtcChannelInterface {
}

@objc func startChannelMediaRelay(_ params: NSDictionary, _ callback: Callback) {
callback.code(self[params["channelId"] as! String]?.startMediaRelay(mapToChannelMediaRelayConfiguration(params["channelMediaRelayConfiguration"] as! Dictionary)))
callback.code(self[params["channelId"] as! String]?.startMediaRelay(mapToChannelMediaRelayConfiguration(params["channelMediaRelayConfiguration"] as! [String: Any])))
}

@objc func updateChannelMediaRelay(_ params: NSDictionary, _ callback: Callback) {
callback.code(self[params["channelId"] as! String]?.updateMediaRelay(mapToChannelMediaRelayConfiguration(params["channelMediaRelayConfiguration"] as! Dictionary)))
callback.code(self[params["channelId"] as! String]?.updateMediaRelay(mapToChannelMediaRelayConfiguration(params["channelMediaRelayConfiguration"] as! [String: Any])))
}

@objc func stopChannelMediaRelay(_ params: NSDictionary, _ callback: Callback) {
Expand Down Expand Up @@ -350,11 +350,11 @@ class RtcChannelManager: NSObject, RtcChannelInterface {
}

@objc func enableEncryption(_ params: NSDictionary, _ callback: Callback) {
callback.code(self[params["channelId"] as! String]?.enableEncryption(params["enabled"] as! Bool, encryptionConfig: mapToEncryptionConfig(params["config"] as! Dictionary)))
callback.code(self[params["channelId"] as! String]?.enableEncryption(params["enabled"] as! Bool, encryptionConfig: mapToEncryptionConfig(params["config"] as! [String: Any])))
}

@objc func addInjectStreamUrl(_ params: NSDictionary, _ callback: Callback) {
callback.code(self[params["channelId"] as! String]?.addInjectStreamUrl(params["url"] as! String, config: mapToLiveInjectStreamConfig(params["config"] as! Dictionary)))
callback.code(self[params["channelId"] as! String]?.addInjectStreamUrl(params["url"] as! String, config: mapToLiveInjectStreamConfig(params["config"] as! [String: Any])))
}

@objc func removeInjectStreamUrl(_ params: NSDictionary, _ callback: Callback) {
Expand Down Expand Up @@ -392,10 +392,12 @@ class RtcChannelManager: NSObject, RtcChannelInterface {
}

@objc func pauseAllChannelMediaRelay(_ params: NSDictionary, _ callback: Callback) {
callback.code(self[params["channelId"] as! String]?.pauseAllChannelMediaRelay())
callback.code(-Int32(AgoraErrorCode.notSupported.rawValue))
// callback.code(self[params["channelId"] as! String]?.pauseAllChannelMediaRelay())
}

@objc func resumeAllChannelMediaRelay(_ params: NSDictionary, _ callback: Callback) {
callback.code(self[params["channelId"] as! String]?.resumeAllChannelMediaRelay())
callback.code(-Int32(AgoraErrorCode.notSupported.rawValue))
// callback.code(self[params["channelId"] as! String]?.resumeAllChannelMediaRelay())
}
}
38 changes: 23 additions & 15 deletions ios/Classes/Base/RtcEngine.swift
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ protocol RtcEngineInterface:
func uploadLogFile(_ callback: Callback)

func setLocalAccessPoint(_ params: NSDictionary, _ callback: Callback)

func enableVirtualBackground(_ params: NSDictionary, _ callback: Callback)
}

protocol RtcEngineUserInfoInterface {
Expand Down Expand Up @@ -408,7 +410,7 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
delegate = RtcEngineEventHandler { [weak self] in
self?.emitter($0, $1)
}
engine = AgoraRtcEngineKit.sharedEngine(with: mapToRtcEngineConfig(params["config"] as! Dictionary), delegate: delegate)
engine = AgoraRtcEngineKit.sharedEngine(with: mapToRtcEngineConfig(params["config"] as! [String: Any]), delegate: delegate)
callback.code(engine?.setAppType(AgoraRtcAppType(rawValue: (params["appType"] as! NSNumber).uintValue)!))
}

Expand Down Expand Up @@ -587,15 +589,15 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func startRhythmPlayer(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.startRhythmPlayer(params["sound1"] as! String, sound2: params["sound2"] as! String, config: mapToRhythmPlayerConfig(params["config"] as! Dictionary)))
callback.code(engine?.startRhythmPlayer(params["sound1"] as! String, sound2: params["sound2"] as! String, config: mapToRhythmPlayerConfig(params["config"] as! [String: Any])))
}

@objc func stopRhythmPlayer(_ callback: Callback) {
callback.code(engine?.stopRhythmPlayer())
}

@objc func configRhythmPlayer(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.configRhythmPlayer(mapToRhythmPlayerConfig(params as! Dictionary)))
callback.code(engine?.configRhythmPlayer(mapToRhythmPlayerConfig(params as! [String: Any])))
}

@objc func enableVideo(_ callback: Callback) {
Expand All @@ -607,7 +609,7 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func setVideoEncoderConfiguration(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.setVideoEncoderConfiguration(mapToVideoEncoderConfiguration(params["config"] as! Dictionary)))
callback.code(engine?.setVideoEncoderConfiguration(mapToVideoEncoderConfiguration(params["config"] as! [String: Any])))
}

@objc func startPreview(_ callback: Callback) {
Expand Down Expand Up @@ -639,7 +641,7 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func setBeautyEffectOptions(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.setBeautyEffectOptions(params["enabled"] as! Bool, options: mapToBeautyOptions(params["options"] as! Dictionary)))
callback.code(engine?.setBeautyEffectOptions(params["enabled"] as! Bool, options: mapToBeautyOptions(params["options"] as! [String: Any])))
}

@objc func startAudioMixing(_ params: NSDictionary, _ callback: Callback) {
Expand Down Expand Up @@ -833,7 +835,7 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func setLiveTranscoding(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.setLiveTranscoding(mapToLiveTranscoding(params["transcoding"] as! Dictionary)))
callback.code(engine?.setLiveTranscoding(mapToLiveTranscoding(params["transcoding"] as! [String: Any])))
}

@objc func addPublishStreamUrl(_ params: NSDictionary, _ callback: Callback) {
Expand All @@ -845,11 +847,11 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func startChannelMediaRelay(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.startChannelMediaRelay(mapToChannelMediaRelayConfiguration(params["channelMediaRelayConfiguration"] as! Dictionary)))
callback.code(engine?.startChannelMediaRelay(mapToChannelMediaRelayConfiguration(params["channelMediaRelayConfiguration"] as! [String: Any])))
}

@objc func updateChannelMediaRelay(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.updateChannelMediaRelay(mapToChannelMediaRelayConfiguration(params["channelMediaRelayConfiguration"] as! Dictionary)))
callback.code(engine?.updateChannelMediaRelay(mapToChannelMediaRelayConfiguration(params["channelMediaRelayConfiguration"] as! [String: Any])))
}

@objc func stopChannelMediaRelay(_ callback: Callback) {
Expand Down Expand Up @@ -919,7 +921,7 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func startLastmileProbeTest(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.startLastmileProbeTest(mapToLastmileProbeConfig(params["config"] as! Dictionary)))
callback.code(engine?.startLastmileProbeTest(mapToLastmileProbeConfig(params["config"] as! [String: Any])))
}

@objc func stopLastmileProbeTest(_ callback: Callback) {
Expand Down Expand Up @@ -960,7 +962,7 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func addVideoWatermark(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.addVideoWatermark(URL(string: params["watermarkUrl"] as! String)!, options: mapToWatermarkOptions(params["options"] as! Dictionary)))
callback.code(engine?.addVideoWatermark(URL(string: params["watermarkUrl"] as! String)!, options: mapToWatermarkOptions(params["options"] as! [String: Any])))
}

@objc func clearVideoWatermarks(_ callback: Callback) {
Expand All @@ -986,7 +988,7 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func enableEncryption(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.enableEncryption(params["enabled"] as! Bool, encryptionConfig: mapToEncryptionConfig(params["config"] as! Dictionary)))
callback.code(engine?.enableEncryption(params["enabled"] as! Bool, encryptionConfig: mapToEncryptionConfig(params["config"] as! [String: Any])))
}

@objc func startAudioRecording(_ params: NSDictionary, _ callback: Callback) {
Expand All @@ -1002,7 +1004,7 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func addInjectStreamUrl(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.addInjectStreamUrl(params["url"] as! String, config: mapToLiveInjectStreamConfig(params["config"] as! Dictionary)))
callback.code(engine?.addInjectStreamUrl(params["url"] as! String, config: mapToLiveInjectStreamConfig(params["config"] as! [String: Any])))
}

@objc func removeInjectStreamUrl(_ params: NSDictionary, _ callback: Callback) {
Expand Down Expand Up @@ -1086,7 +1088,7 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func setCameraCapturerConfiguration(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.setCameraCapturerConfiguration(mapToCameraCapturerConfiguration(params["config"] as! Dictionary)))
callback.code(engine?.setCameraCapturerConfiguration(mapToCameraCapturerConfiguration(params["config"] as! [String: Any])))
}

@objc func createDataStream(_ params: NSDictionary, _ callback: Callback) {
Expand Down Expand Up @@ -1148,10 +1150,16 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
}

@objc func pauseAllChannelMediaRelay(_ callback: Callback) {
callback.code(engine?.pauseAllChannelMediaRelay())
callback.code(-Int32(AgoraErrorCode.notSupported.rawValue))
// callback.code(engine?.pauseAllChannelMediaRelay())
}

@objc func resumeAllChannelMediaRelay(_ callback: Callback) {
callback.code(engine?.resumeAllChannelMediaRelay())
callback.code(-Int32(AgoraErrorCode.notSupported.rawValue))
// callback.code(engine?.resumeAllChannelMediaRelay())
}

@objc func enableVirtualBackground(_ params: NSDictionary, _ callback: Callback) {
callback.code(engine?.enableVirtualBackground(params["enabled"] as! Bool, backData: mapToVirtualBackgroundSource(params["backgroundSource"] as! [String: Any])))
}
}
Loading

0 comments on commit 7c9ed81

Please sign in to comment.