Skip to content

Commit 3a55997

Browse files
committed
feat: add setClientRole(role: ClientRole, options?: ClientRoleOptions): Promise<void>
1 parent 4ee51a9 commit 3a55997

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

BeanCovertor.swift

+10
Original file line numberDiff line numberDiff line change
@@ -305,3 +305,13 @@ func mapToEncryptionConfig(_ map: Dictionary<String, Any>) -> AgoraEncryptionCon
305305
}
306306
return encryptionConfig
307307
}
308+
309+
func mapToClientRoleOptions(_ map: Dictionary<String, Any>) -> AgoraClientRoleOptions {
310+
let clientRoleOptions = AgoraClientRoleOptions()
311+
if let audienceLatencyLevel = map["audienceLatencyLevel"] as? Int {
312+
if let audienceLatencyLevel = AgoraAudienceLatencyLevelType(rawValue: audienceLatencyLevel) {
313+
clientRoleOptions.audienceLatencyLevel = audienceLatencyLevel
314+
}
315+
}
316+
return clientRoleOptions
317+
}

RtcChannel.swift

+6-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,12 @@ class RtcChannelManager: NSObject, RtcChannelInterface {
171171
}
172172

173173
@objc func setClientRole(_ params: NSDictionary, _ callback: Callback) {
174-
callback.code(self[params["channelId"] as! String]?.setClientRole(AgoraClientRole(rawValue: params["role"] as! Int)!))
174+
let role = AgoraClientRole(rawValue: params["role"] as! Int)!
175+
if let options = params["options"] as? Dictionary<String, Any> {
176+
callback.code(self[params["channelId"] as! String]?.setClientRole(role, options: mapToClientRoleOptions(options)))
177+
return
178+
}
179+
callback.code(self[params["channelId"] as! String]?.setClientRole(role))
175180
}
176181

177182
@objc func joinChannel(_ params: NSDictionary, _ callback: Callback) {

RtcEngine.swift

+6-1
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,12 @@ class RtcEngineManager: NSObject, RtcEngineInterface {
387387
}
388388

389389
@objc func setClientRole(_ params: NSDictionary, _ callback: Callback) {
390-
callback.code(engine?.setClientRole(AgoraClientRole(rawValue: params["role"] as! Int)!))
390+
let role = AgoraClientRole(rawValue: params["role"] as! Int)!
391+
if let options = params["options"] as? Dictionary<String, Any> {
392+
callback.code(engine?.setClientRole(role, options: mapToClientRoleOptions(options)))
393+
return
394+
}
395+
callback.code(engine?.setClientRole(role))
391396
}
392397

393398
@objc func joinChannel(_ params: NSDictionary, _ callback: Callback) {

0 commit comments

Comments
 (0)