华为云用户手册

  • 通过Flume采集TCP/UDP协议传输的日志上报到LTS 通过Flume采集TCP/UDP协议传输的日志上报到LTS。以下示例中的参数介绍请参考使用KAFKA协议上报日志。 采集TCP端口日志,参考如下示例添加采集端口的conf文件。 a1.sources = r1 a1.sinks = k1 a1.channels = c1 a1.sources.r1.type = netcat a1.sources.r1.bind = 0.0.0.0 a1.sources.r1.port = {host_port} a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink a1.sinks.k1.kafka.topic = ${logGroupId}_${logStreamId} a1.sinks.k1.kafka.bootstrap.servers = ${ip}:${port} a1.sinks.k1.kafka.producer.acks = 0 a1.sinks.k1.kafka.producer.security.protocol = SASL_PLAINTEXT a1.sinks.k1.kafka.producer.sasl.mechanism = PLAIN a1.sinks.k1.kafka.producer.compression.type = gzip a1.sinks.k1.kafka.producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="${projectId}" password="${accessKey}#${accessSecret}"; a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1 采集UDP端口日志,参考如下示例添加采集端口的conf文件。 a1.sources = r1 a1.sinks = k1 a1.channels = c1 a1.sources.r1.type = netcatudp a1.sources.r1.bind = 0.0.0.0 a1.sources.r1.port = {host_port} a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink a1.sinks.k1.kafka.topic = ${logGroupId}_${logStreamId} a1.sinks.k1.kafka.bootstrap.servers = ${ip}:${port} a1.sinks.k1.kafka.producer.acks = 0 a1.sinks.k1.kafka.producer.security.protocol = SASL_PLAINTEXT a1.sinks.k1.kafka.producer.sasl.mechanism = PLAIN a1.sinks.k1.kafka.producer.compression.type = gzip a1.sinks.k1.kafka.producer.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="${projectId}" password="${accessKey}#${accessSecret}"; a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1
  • 使用默认拦截器处理日志 使用Flume采集器时,拦截器是简单的插件式组件,设置在Source和Channel之间。Source接收到的事件Event,在写入Channel之前,拦截器都可以进行转换或者删除这些事件。每个拦截器只处理同一个Source接收到的事件。 时间戳拦截器 该拦截器的作用是将时间戳插入到flume的事件报头中。如果不使用任何拦截器,flume接收到的只有message。时间戳拦截器的配置, 参数默认值描述type,类型名称timestamp,也可以使用类名的全路径preserveExisting为false。如果设置为true,若事件中报头已经存在,不会替换时间戳报头的值。source连接到时间戳拦截器的配置: a1.sources.r1.interceptors = timestamp a1.sources.r1.interceptors.timestamp.type=timestamp a1.sources.r1.interceptors.timestamp.preserveExisting=false 正则过滤拦截器 在日志采集的时候,可能有一些数据是不需要的,添加过滤拦截器可以过滤掉不需要的日志,也可以根据需要收集满足正则条件的日志。参数默认值描述type,类型名称REGEX_FILTER。excludeEvents为false时默认收集匹配到的事件。如果为true,则会删除匹配到的event,收集未匹配到的。source连接到正则过滤拦截器的配置: a1.sources.r1.interceptors = regex a1.sources.r1.interceptors.regex.type=REGEX_FILTER a1.sources.r1.interceptors.regex.regex=(today)|(Monday) a1.sources.r1.interceptors.regex.excludeEvents=false 这样配置的拦截器就只会接收日志消息中带有today或者Monday的日志。 搜索并替换拦截器 拦截器基于Java正则表达式提供简单的基于字符串的搜索和替换功能。配置如下: # 拦截器别名 a1.sources.r1.interceptors = search-replace # 拦截器类型,必须是search_replace a1.sources.r1.interceptors.search-replace.type = search_replace #删除事件正文中的字符,根据正则匹配event内容 a1.sources.r1.interceptors.search-replace.searchPattern = today # 替换匹配到的event内容 a1.sources.r1.interceptors.search-replace.replaceString = yesterday # 设置字符集,默认是utf8 a1.sources.r1.interceptors.search-replace.charset = utf8
  • getScreenShareSources virtual IHR TCS creenShareSourceList* getScreenShareSources(HRT CS creenShareIconType type) 【功能说明】 获取屏幕可共享对象列表。 【请求参数】 type:屏幕捕获图像类型,具体请参见HRTCScreenShareIconType。 【返回参数】 共享屏幕窗口对象列表,具体请参见共享屏幕资源管理。
  • setRemoteVideoStreamType public abstract int setRemoteVideoStreamType(String userId, HRTCVideoStreamType type); 【功能说明】 大小流模式,设置指定订阅的远端视频流类型。 【请求参数】 userId:远端用户唯一标识。 type:订阅的视频流类型,分为大流和小流,具体请参见HRTCVideoStreamType。
  • 设备管理 表12 设备管理接口 接口 描述 setCameraConfig 设置摄像头参数 switchCamera 切换摄像头 setSpeakerModel 设置声音播放模式 setDefaultSpeakerModel 设置默认的声音播放模式 setLayoutDirect 设置显示模式,区分横屏还是竖屏,用于保证摄像头方向与本地界面方向一致 isSpeakerphoneEnabled 查询是否启用扬声器
  • 自定义视频采集和渲染 表10 自定义视频采集和渲染接口 接口 描述 setExternalVideoFrameOutputEnable 设置视频数据输出使能 setExternalDataFrameOutputEnable 设置共享数据输出使能 setExternalVideoCapture 设置是否开启外部视频采集 pushExternalVideoFrame 输入外部视频数据 pushAuxExternalVideoFrame 辅流输入外部视频数据
  • 音效文件播放管理 表7 音效文件播放管理接口 接口 描述 startAudioFile 开始播放音频文件 stopAudioFile 停止播放音频文件 pauseAudioFile 暂停播放音频文件 resumeAudioFile 恢复播放音频文件 isPlayMixMyself 是否只有本地可以听到混音 isMixWithMicrophone 是否需要替代采集 adjustAudioFileVolume 调整本地和远端音频播放的音量 adjustAudioFilePlayoutVolume 调整本地音频播放的音量 adjustAudioFilePublishVolume 调整远端音频播放的音量 getAudioFileVolume 获取音频播放的音量 getAudioFilePlayoutVolume 获取音频本地播放的音量 getAudioFilePublishVolume 获取音频远端播放的音量 getAudioFileDuration 获取音频文件的时长 getAudioFilePosition 获取音频文件当前播放位置 setAudioFilePosition 设置音频文件播放位置 playAudioClip 开始播放音效文件 stopAudioClip 停止播放音效文件 pauseAudioClip 暂停播放音效文件 resumeAudioClip 恢复播放音效文件 stopAllAudioClips 停止播放所有音效文件 pauseAllAudioClips 暂停播放所有音效文件 resumeAllAudioClips 恢复播放所有音效文件 setAudioClipsVolume 设置音效播放的最大音量 getAudioClipsVolume 获取音效播放的最大音量 setVolumeOfAudioClip 设置指定音效的播放音量 getVolumeOfAudioClip 获取指定音效的播放音量 setAudioClipPosition 设置指定音效文件的播放位置 getAudioClipCurrentPosition 获取指定音效文件当前的播放位置 getAudioClipDuration 获取音效的文件时长 preloadAudioClip 预加载音效文件 unloadAudioClip 删除预加载音效文件
  • 视频管理 表4 视频管理接口 接口 描述 createRenderer 创建渲染视图 updateLocalRenderMode 设置本地窗口显示模式,镜像模式 setupLocalView 设置本地窗口 pushLocalVideo 设置是否发送本地视频流 setVideoEncoderConfig 设置视频编码参数 setNonStandardVideoEncoder 设置非标视频编码参数 setRemoteVideoAdjustResolution 设置订阅视频流的分辨率自适应 startLocalPreview 开始本地预览 stopLocalPreview 停止本地预览 startRemoteStreamView 开始订阅远端视频流 stopRemoteStreamView 停止订阅远端视频流 setupRemoteView 设置远端窗口视图 updateRemoteRenderMode 设置远端窗口渲染模式,镜像模式 pullRemoteVideo 设置是否接收对应远端用户的视频流 pullAllRemoteVideo 设置是否接收所有远端用户的视频流 setVideoEncoderMirror 设置视频编码镜像模式 enableLocalVideo 设置是否开启摄像头采集视频 enableVideoSuperResolution 设置是否开启视频超分 enableSmallVideoStream 开启并设置小流编码参数 setPriorRemoteVideoStreamType 设置默认订阅的视频流类型(大流还是小流) setRemoteVideoStreamType 设置当前订阅的视频流类型 startPublishStream 开始旁路推流 updateTransCoding 更新旁路推流 stopPublishStream 停止旁路推流 startAllRemoteView 批量设置远端流视图
  • 辅流管理 表6 辅流管理接口 接口 描述 setAuxiliaryVideoEncodeSmooth 设置是否开启辅流的流畅度优先。 startRemoteAuxiliaryStreamView 开始订阅辅流 stopRemoteAuxiliaryStreamView 停止订阅辅流 setRemoteAuxiliaryStreamViewRotation 设置辅流角度 updateRemoteAuxiliaryStreamRenderMode 设置辅流渲染模式,镜像模式 setAuxiliaryVideoEncoderConfig 设置辅流编码参数 setAuxExternalVideoCapture 设置是否开启视频辅流外部采集
  • 音频管理 表3 音频管理接口 接口 描述 muteLocalAudio 设置是否发送本地音频流 muteRemoteAudio 设置是否接收对应远端用户的音频流 muteAllRemoteAudio 设置是否接收所有远端用户的音频流 enableLocalAudioStream 设置是否开启音频采集 adjustRecordingVolume 调整录制音量 adjustPlaybackVolume 调整播放音量 adjustPlaybackVolume 调整单个用户播放音量 sendAudioSeiMsg 发送音频SEI setAudioFrameRecordParameters 设置音频采集回调参数 setAudioConfig 设置音频场景
  • 房间功能 表2 房间功能接口 接口 描述 joinRoom 加入房间 leaveRoom 离开房间 changeUserRole 设置用户角色 renewAuthorization 更新鉴权签名 changeUserName 更新用户昵称 createConnection 创建跨房(HRTCConnection)对象 addMultiRoomMediaRelay 添加单个跨房 removeMultiRoomMediaRelay 删除单个跨房 stopMultiRoomMediaRelay 停止所有跨房
  • 初始化等基础接口 表1 初始化等基础接口 接口 描述 create 创建SparkRTC引擎实例 destroy 销毁SparkRTC引擎 logUpload 上传日志 disableRejoinRoom 设置是否禁用房间重连功能。 enableStats 打点功能开关 getVersion 获取当前SDK版本号 setEncryption 设置端到端加密模式 setAccessResourceType 设置接入环境 setNetworkBandwidth 设置网络带宽限制
  • 软件包完整性校验 用户可对下载的SDK包进行完整性校验,判断下载过程中是否存在篡改和丢包现象。 详细操作如下所示: 获取SDK包及其完整性校验sha256文件。 打开本地命令提示符框,输入如下命令,在本地生成已下载SDK包的SHA256值。 其中,“D:\RtcSdk_Web_2.0.9.533.zip”为SDK包本地存放路径和SDK包名,请根据实际情况修改。 certutil -hashfile D:\RtcSdk_Web_2.0.9.533.zip SHA256 命令执行结果示例,如下所示: SHA256 的 RtcSdk_Web_2.0.9.533.zip 哈希: bca7141a498a17ee4eb1de208992c347daf65963140e614d0b3121ac62bca9be CertUtil: -hashfile 命令成功完成。 比对本地计算出的SDK包SHA256值和完整性校验sha256文件的SHA256值。 如果一致,说明下载过程中不存在篡改和丢包现象。
  • createConnection virtual IHRTCConnection* createConnection(const char* roomId, IHRTCConnectionEventHandler* eventHandler) = 0) 【功能说明】 通过此接口可以创建一个与房间关联的IHRTCConnection连接对象,可多次调用以创建多个IHRTCConnection连接对象。调用每个连接对象中的joinRoom方法等接口,可以实现同时加入到多个房间,完成订阅和选看多个连接房间中的用户等功能。具体请参见IHRTCConnection和事件回调(IHRTCConnectionEventHandler)目录下的有关接口和回调。 【请求参数】 roomId:房间ID。 eventHandler:IHRTCConnectionEventHandler,引擎回调句柄,指定一个回调事件。SDK通过指定的事件通知应用程序的运行事件,如加入或离开房间等。具体请参见5.3.4-事件回调(IHRTCConnectionEventHandler)。 【返回参数】 IHRTCConnection:成功返回连接对象指针,失败返回内容为空。 同一时间最多只能创建4个连接对象,每个连接对象对应的房间ID必须互不相同。加上IHRTCEngine对象,即同时最多可加入5个房间,且在这5个房间中最多只能同时有一个joiner角色,其他只能为player角色。如果使用IHRTCEngine对象加入房间,则加入房间的房间ID不能和已创建连接对象对应的房间ID相同。
  • 基本使用逻辑 创建新的项目工程,导入 SDK 后,需要创建客户端并获取本地音视频设备信息。 创建本地流并初始化。 当用户加入房间后,将通过回调的方式通知房间内的其他用户,收到用户加入的回调后,可以对音视频流进行订阅、取消订阅等其它操作。 在会中,也可以对本地录音或播放设备等进行配置。 用户离开房间后,房间内其他用户会收到该用户离开的回调信息,离开房间后,需销毁对应资源。 在时序图中,单击相应接口名称可快速跳转到相应接口位置查看其使用方法。 父主题: Web SDK
  • 基本使用逻辑 创建新的项目工程,导入SDK后,需要先创建引擎。 您可以在入会前进行视频编码、声音播放模式等参数的配置。 设置本地视图。 加入房间后,将通过回调的方式通知房间内的其他用户,收到用户加入的回调后,可以为其设置远端视图。 在会中,也可以进行切换摄像头等参数的配置。 离开房间后,需销毁对应资源。 在时序图中,单击相应接口名称可快速跳转到相应接口位置查看其使用方法。 父主题: All Platform C++ SDK
  • onVideoFrameRender virtual bool onVideoFrameRender(const char* userId, HRTCVideoFrame& videoFrame) 【功能说明】 原始视频数据处理后回调 【回调参数】 userid:用户ID videoFrame:视频数据格式 ,具体请参见HRTCVideoFrame。 【返回参数】 true:处理结果成功。 false:处理结果失败。
  • onAudioFramePlayback virtual bool onAudioFramePlayback(HRTCAudioFrame& audioFrame) 【功能说明】 需要播放的音频数据回调,从接口回调中取到音频数据以作后处理。 【回调参数】 audioFrame:音频数据格式 ,具体请参见HRTCAudioFrame。 【返回参数】 true:处理结果成功。 false:处理结果失败。
  • getAudioDeviceManager virtual IHRTCAudioDeviceManager* getAudioDeviceManager() 【功能说明】 获取系统音频设备管理对象。通过该对象进行音频设备管理,具体请参见音频设备管理。 【请求参数】 无 【返回参数】 IHRTCAudioDeviceManager*:IHRTCAudioDeviceManager对象。 NULL:返回失败。
  • getVideoDeviceManager virtual IHRTCVideoDeviceManager* getVideoDeviceManager() 【功能说明】 获取系统视频设备管理对象。通过该对象进行视频设备管理,具体请参见视频设备管理。 【请求参数】 无 【返回参数】 IHRTCVideoDeviceManager*:IHRTCVideoDeviceManager对象。 NULL:返回失败。
  • onVideoFrameRender virtual bool onVideoFrameRender(IHRTCConnection* conn, const char* userId, HRTCVideoFrame& videoFrame) 【功能说明】 原始视频数据处理后回调 【回调参数】 conn:连接对象 userid:用户ID videoFrame:视频数据格式 ,具体请参见HRTCVideoFrame。 【返回参数】 true:处理结果成功。 false:处理结果失败。
  • onLocalVideoStatsNotify virtual void onLocalVideoStatsNotify(const HRTCLocalVideoStats *localStats, unsigned int localStatsCount) 【功能说明】 本地视频流详情,2s触发一次回调。 【回调参数】 localStats:本地视频收流统计,具体请参见HRTCLocalVideoStats。 localStatsCount:localStats数组长度。
  • onStreamPublishStateChange void onStreamPublishStateChange(int code, const char* taskId, const HRTCUrlStatusList * urlStatu); 【功能说明】 RTMP推流状态回调。 【回调参数】 code:错误码,成功为0,失败请参考错误码HRTCErrorCode。 taskId:任务Id。 urlStatu:推流的url状态,具体请参见HRTCUrlStatusList。
  • onRemoteVideoStatsNotify virtual void onRemoteVideoStatsNotify(const HRTCRemoteVideoStats *remoteStats, unsigned int remoteStatsCount) 【功能说明】 远端视频流详情,2s触发一次回调。 【回调参数】 remoteStats:远端视频收流统计,具体请参见HRTCRemoteVideoStats。 remoteStatsCount:remoteStats数组长度。
  • onShareWindowLocationChangedNotify void onShareWindowLocationChangedNotify(const char* info); 【功能说明】 共享源目标坐标或者DPI发生变化通知。 【回调参数】 info:json类型,如{dpi:100, x:0, y:0, width:1920, height:1080} dpi:当前窗口的缩放 x:左上角x轴坐标 y:左上角y轴坐标 width:宽 height:高
  • onMultiRoomMediaRelayStateChanged void onMultiRoomMediaRelayStateChanged(const char *roomId, HRTCMultiRoomMediaRelayState state, HRTCMultiRoomMediaRelayStateCode code); 【功能说明】 跨房状态回调。 【回调参数】 roomId:跨房房间号。 state:状态类型,具体请参见HRTCMultiRoomMediaRelayState。 code:状态的具体原因,具体请参见HRTCMultiRoomMediaRelayStateCode。
  • onRemoteMicrophoneStateChanged void onRemoteMicrophoneStateChanged(const char* userId, HRTCRemoteMicState state); 【功能说明】 远端麦克风设备状态变更通知。 【回调参数】 userId:远端用户userId。 state:麦克风设备状态,具体请参见HRTCRemoteMicState。
  • onUserNetworkQualityNotify void onUserNetworkQualityNotify(const char *roomId, const char* userId, HRTCNetworkQualityLevel txQuality, HRTCNetworkQualityLevel rxQuality); 【功能说明】 支持用户上报各自与近端SFU间的上下行网络质量,基于用户级,使本地用户能获取同房间内远端用户与其近端SFU间的网络质量。CMD广播时为房间级,将广播给订阅了此主播流的用户或者此主播被选为TOPN用户且观众订阅了该TOPN用户。 【回调参数】 roomId:用户所在房间号。 userId: 上报的用户id,0为本地,非0为远端。 txQuality:该用户的上行网络质量,具体请参见HRTCNetworkQualityLevel。 rxQuality:该用户的下行网络质量,具体请参见HRTCNetworkQualityLevel。 此接口不支持跨房场景、WebRTC场景。 不支持RTSA。
  • onRemoteAudioStateChangedNotify virtual void onRemoteAudioStateChangedNotify(const char* userId, HRTCRemoteAudioStreamState state, HRTCRemoteAudioStreamStateReason reason) 【功能说明】 远端音频流状态变化回调。 【回调参数】 userId:远端用户ID。 state:远端音频流状态,具体请参见HRTCRemoteAudioStreamState。 reason:远端音频流状态变化原因,具体请参见HRTCRemoteAudioStreamStateReason。
  • onUserVolumeStatsNotify virtual void onUserVolumeStatsNotify(const HRTCVolumeInfo* userVolumes, unsigned int userVolumesCount, unsigned int totalVolume) 【功能说明】 用户音量状态回调。通过enableUserVolumeNotify开启并设置回调周期,定时上报。 【回调参数】 userVolumes:用户信息,具体请参见HRTCVolumeInfo。 userVolumesCount:上报的用户人数,包含本地用户。 totalVolume:总音量。
共100000条