# 高级媒体流管理

本文将介绍管理坐席媒体流的相关功能。

# 屏幕共享

开启关闭屏幕共享.

/**
 * 屏幕共享
 * @param enable 是否共享
 * @return 接口调用结果
 */
- (bool)enableScreenShare:(bool)enable;

屏幕共享通过实现 JCAgentCallback 中的 onCallPropertyChange (opens new window) 接口上报。

- (void)onCallPropertyChange:(JCMediaChannelPropChangeParam *)changeParam {
    if (changeParam.screenShare) {
        if (_agent.shareRenderId.length) {
            // 屏幕共享打开,通过_agent.ShareRenderId渲染共享画面
        } else {
            // 屏幕共享关闭
        }
    }
}

# 本地录制

录制通话在本地生成视频文件。

/**
 *  @brief 本地录制
 *  @param enable 开启关闭
 *  @param recordParam  录制参数对象
 *  @return 返回 true 表示正常执行调用流程,false 表示调用异常
 */
- (bool)enableLocalRecord:(bool)enable recordParam:(JCMediaChannelRecordLocalParams *)recordParam;

recordParam中对应参数:

名称 用途
FilePath 录制文件路径
RecordAudio 是否录制音频
RecordVideo 是否录制视频
RecordSelf 是否录制自己画面
FrameRate 录制帧率
RecordResolution 录制分辨率
MergeMode 录制视频的合并模式

# 远程录制

访客在发起呼叫的时候可以携带AutoRecord参数来设置是否在通话开始后就进行远程录制。

如果该次通话没有设置自动远程录制,则可以通过终端来触发录制,在服务端形成通话过程的视频文件。

录制的配置(如水印、时间戳等)与自动录制的相同,都来自portal上的配置。

/**
 *  @brief 开关视频录制
 *  @param enable 是否开启屏幕录制
 *  @return 返回 true 表示正常执行调用流程,false 表示调用异常
 */
- (bool)enableRemoteRecord:(bool)enable;