ARtcChannel

最近更新时间:2022-09-20 05:17:40

概览

ar云平台 RTC 频道方法。

createRtcChannel

- (ARtcChannel * _Nullable)createRtcChannel:(NSString * _Nonnull)channelId;

实例化ARtcChannel对象

参数描述
channelId当前 ARtcChannel 对象的频道 ID

返回值

一个ARtcChannel 实例对象。

destroy

- (int)destroy;

销毁 ARtcChannel 对象

返回值

0方法调用成功,<0方法调用失败。

setRtcChannelDelegate

- (void)setRtcChannelDelegate:(id<ARtcChannelDelegate> _Nullable)channelDelegate;

设置 ARtcChannel 对象的 Delegate

参数描述
channelDelegate详见channelDelegate

getChannelId

- (NSString * _Nullable)getChannelId;

获取当前 ARtcChannel 对象的频道 ID

返回值

  • channelId

当前 ARtcChannel 对象的频道 ID

joinChannelByToken

- (int)joinChannelByToken:(NSString * _Nullable)token
                      uid:(NSString * _Nullable)uid
                  options:(ARtcChannelMediaOptions * _Nonnull)options;

通过用户 ID 加入频道

参数描述
token动态密钥
uid用户 ID
options频道媒体设置选项 ARtcChannelMediaOptions

返回值

0方法调用成功,<0方法调用失败。

leaveChannel

- (int)leaveChannel;

离开频道

离开频道,即挂断或退出通话。

返回值

0方法调用成功,<0方法调用失败。

publish

- (int)publish;

将本地音视频流发布到本频道

返回值

0方法调用成功,<0方法调用失败。

unpublish

- (int)unpublish;

停止将本地音视频流发布到本频道

返回值

0方法调用成功,<0方法调用失败。

setClientRole

- (int)setClientRole:(ARClientRole)role;

设置用户角色

该方法仅适用于直播场景。

在加入频道前,用户需要通过本方法设置观众(默认)或主播角色。在直播场景中,只有角色为主播时可调用 publish 方法。

如果你在加入频道后调用该方法切换用户角色,调用成功后会触发以下回调:

参数

参数描述
role直播场景里的用户角色
  • ARClientRoleBroadcaster(1): 直播频道中的主播,可以发布和接收音视频流。
  • ARClientRoleAudience(2): (默认)直播频道中的观众,只可以接收音视频流。
  • 返回值

    0方法调用成功,<0方法调用失败。

    renewToken

    - (int)renewToken:(NSString *_Nonnull)token;
    

    更新 Token

    该方法用于更新 Token。如果启用了 Token 机制,过一段时间后使用的 Token 会失效。当以下任意一种情况发生时:

    App 应重新获取 Token,然后调用该 API 更新 Token,否则 SDK 无法和服务器建立连接。

    注意事项: 推荐使用 rtcChannelRequestToken 回调报告 ARErrorCodeTokenExpired(-109),而不是 didOccurError 回调。

    参数

    参数描述
    token新的token

    返回值

    0方法调用成功,<0方法调用失败。

    setRemoteRenderMode

    - (int)setRemoteRenderMode:(NSString *_Nonnull)uid renderMode:(ARVideoRenderMode)renderMode mirrorMode:(ARVideoMirrorMode)mirrorMode;
    
    

    更新远端视图显示模式

    初始化远端用户视图后,你可以调用该方法更新远端用户视图在本地显示时的渲染和镜像模式。该方法只影响本地用户看到的视频画面。

    注意事项:

    • 请在调用 setupRemoteVideo 方法初始化远端视图后,调用该方法。
    • 你可以在通话中多次调用该方法,多次更新远端用户视图的显示模式。
    参数描述
    uid用户 ID
    renderMode远端用户视图的渲染模式,详见 ARVideoRenderMode
    mirrorMode远端用户视图的镜像模式,详见 ARVideoMirrorMode

    返回值

    0方法调用成功,<0方法调用失败。

    setDefaultMuteAllRemoteAudioStreams

    - (int)setDefaultMuteAllRemoteAudioStreams:(BOOL)mute;
    

    设置是否默认接收音频流

    该方法在加入频道前后都可调用。如果在加入频道后调用 setDefaultMuteAllRemoteAudioStreams (YES),会接收不到设置后加入频道的用户的音频流。

    注意事项: 停止接收音频流后,如果想要恢复接收,请调用 muteRemoteAudioStream (NO),并指定你想要接收的远端用户 uid;如果想恢复接收多个用户的音频流,则需要多次调用 muteRemoteAudioStream。setDefaultMuteAllRemoteAudioStreams (NO) 只能恢复接收后面加入频道的用户的音频流。

    参数

    参数描述
    mute设置是否默认接收音频流:
  • YES: 默认停止接收所有远端音频流
  • NO: 默认继续接收所有远端音频流(默认)
  • 返回值

    0方法调用成功,<0方法调用失败。

    setDefaultMuteAllRemoteVideoStreams

    - (int)setDefaultMuteAllRemoteVideoStreams:(BOOL)mute;
    

    设置是否默认接收视频流

    该方法在加入频道前后都可调用。如果在加入频道后调用setDefaultMuteAllRemoteVideoStreams(YES),会接收不到设置后加入频道的用户的视频流。

    注意事项: 停止接收视频流后,如果想要恢复接收,请调用 muteRemoteVideoStream (NO),并指定你想要接收的远端用户 uid;如果想恢复接收多个用户的视频流,则需要多次调用 muteRemoteVideoStream。setDefaultMuteAllRemoteVideoStreams (NO) 只能恢复接收后面加入频道的用户的视频流。

    参数描述
    mute设置是否默认接收视频流:
  • YES: 不接收
  • NO: 接收
  • 返回值

    0方法调用成功,<0方法调用失败。

    muteRemoteAudioStream

    - (int)muteRemoteAudioStream:(NSString *_Nonnull)uid mute:(BOOL)mute;
    

    停止/恢复接收指定用户的音频流

    注意事项: 如果之前有调用过 muteAllRemoteAudioStreams(YES) 对所有远端音频进行静音,在调用本 API 之前请确保你已调用 muteAllRemoteAudioStreams(NO)。 muteAllRemoteAudioStreams 是全局控制,muteRemoteAudioStream 是精细控制。

    参数描述
    uid指定用户的用户 ID
    mute停止/恢复接收指定用户的音频流:
  • YES: 停止接收指定音频流
  • NO: 继续接收指定音频流(默认)
  • 返回值

    0方法调用成功,<0方法调用失败。

    adjustUserPlaybackSignalVolume

    - (int)adjustUserPlaybackSignalVolume:(NSString *_Nonnull)uid volume:(int)volume;
    

    调节本地播放的指定远端用户音量

    加入频道后,你可以多次调用该方法调节不同远端用户在本地播放的音量,或对某个远端用户在本地播放的音量调节多次。

    注意事项:

    • 该方法要在加入频道后调用。
    • 该方法调节的是本地播放的指定远端用户混音后的音量。
    • 该方法每次只能调整一位远端用户在本地播放的音量。若需调整多位远端用户在本地播放的音量,则需多次调用该方法。
    参数描述
    uid远端用户 ID,需和远端用户加入频道时用的 uid 一致。
    volume播放音量,取值范围为 [0,100]。
  • 0: 静音
  • 100: 原始音量
  • 返回值

    0方法调用成功,<0方法调用失败。

    muteAllRemoteAudioStreams

    - (int)muteAllRemoteAudioStreams:(BOOL)mute;
    

    停止/恢复接收所有远端音频流

    参数描述
    muteYES: 停止接收所有远端音频流;NO: 继续接收所有远端音频流(默认)。

    返回值

    0方法调用成功,<0方法调用失败。

    muteRemoteVideoStream

    - (int)muteRemoteVideoStream:(NSString *_Nonnull)uid mute:(BOOL)mute;
    

    停止/恢复接收指定视频流

    注意事项: 如果之前有调用过 muteAllRemoteVideoStreams(YES) 暂停接收所有远端视频,在调用本 API 之前请确保你已调用 muteAllRemoteVideoStreams(NO)。 muteAllRemoteVideoStreams 是全局控制,muteRemoteVideoStream 是精细控制。

    参数描述
    uid远端用户ID
    mute停止/恢复接收指定视频流:
  • YES: 停止接收指定用户的视频流
  • NO: 允许接收指定用户的视频流(默认)
  • 返回值

    0方法调用成功,<0方法调用失败。

    muteAllRemoteVideoStreams

    - (int)muteAllRemoteVideoStreams:(BOOL)mute;
    

    停止/恢复接收所有视频流

    参数描述
    mute禁止/允许接收所有人的视频流
  • YES: 停止接收所有视频流
  • NO: 允许接收所有视频流(默认)
  • 返回值

    0方法调用成功,<0方法调用失败。

    setRemoteVideoStream

    - (int)setRemoteVideoStream:(NSString *_Nonnull)uid type:(ARVideoStreamType)streamType;
    

    设置默认订阅的视频流类型

    参数描述
    streamType设置默认接收的视频流类型,详见ARVideoStreamType

    返回值

    0方法调用成功,<0方法调用失败。