华为云用户手册

  • onUserAuxiliaryStreamAvailable virtual void onUserAuxiliaryStreamAvailable(IHRTCConnection* conn, const char* userId, bool available) 【功能说明】 远端开启,停止辅流后,触发此回调。 【回调参数】 conn:连接对象。 userId:远端用户ID。 available:true表示远端开启推辅流,false表示远端停止辅流。
  • onFirstRemoteAuxiliaryStreamDecoded virtual void onFirstRemoteAuxiliaryStreamDecoded(IHRTCConnection* conn, const char* userId, int width, int height) 【功能说明】 远端用户辅流第一帧解码成功,触发此回调。 【回调参数】 conn:连接对象。 userId:用户ID。 width:视频宽。 height:视频高。
  • onAuxiliaryStreamStatsNotify virtual void onAuxiliaryStreamStatsNotify(IHRTCConnection* conn, HRTCLocalVideoStats *localStats, unsigned int localStatsCount, HRTCRemoteVideoStats *remoteStats, unsigned int remoteStatsCount) 【功能说明】 辅流详情,2s触发一次回调。 【回调参数】 conn:连接对象。 localStats:本地辅流发流详情,具体请参见HRTCLocalVideoStats。 localStatsCount:本地辅流发流数量。 remoteStats:远端辅流收流详情,具体请参见HRTCRemoteVideoStats。 remoteStatsCount:远端辅流收流数量。
  • onRemoteVideoStateChangedNotify virtual void onRemoteVideoStateChangedNotify(IHRTCConnection* conn, const char* userId, HRTCRemoteVideoStreamState state, HRTCRemoteVideoStreamStateReason reason) 【功能说明】 远端视频流状态变化回调。 【回调参数】 conn:连接对象。 userId:远端用户ID。 state:远端视频流状态,具体请参见HRTCRemoteVideoStreamState。 reason:远端视频流状态变化原因,具体请参见HRTCRemoteVideoStreamStateReason。
  • onFirstRemoteVideoDecoded virtual void onFirstRemoteVideoDecoded(IHRTCConnection* conn, const char* userId, int width, int height) 【功能说明】 远端用户视频流第一帧解码成功,触发此回调。 【回调参数】 conn:连接对象。 userId:用户ID。 width:视频宽。 height:视频高。
  • onNetworkQualityNotify virtual void onNetworkQualityNotify(IHRTCConnection* conn, HRTCQualityInfo* localQuality, unsigned int localQualityCount, HRTCQualityInfo* remoteQuality, unsigned int remoteQualityCount) 【功能说明】 房间内客户端基于流级别的网络质量实时上报,默认开启,每2s上报一次,有数据流时才会回调,音频流、视频流分开回调。 【回调参数】 conn:连接对象。 localQuality:本地上行网络质量,该参数暂时不使用。 localQualityCount:正在上报的网络质量数量,该参数暂时不使用。 remoteQualityCount:正在上报的流的数量,集合的大小。
  • onRenderExternalVideoFrame void onRenderExternalVideoFrame(String roomId, HRTCMediaDirection direction, String userId, HRTCVideoFrame videoFrame); 【功能说明】 回调远端的视频原始数据流。 【回调参数】 roomId:房间ID。 userId:用户ID。 videoFrame:视频数据。 direction:数据源,本地数据,远端数据,具体请参见HRTCMediaDirection。
  • onRemoteAudioStateChangedNotify void onRemoteAudioStateChangedNotify(String userId, HRTCRemoteAudioStreamState state, HRTCRemoteAudioStreamStateReason reason); 【功能说明】 远端音频流状态变化回调。 【回调参数】 userId:远端用户ID。 state:远端音频流状态,具体请参见HRTCRemoteAudioStreamState。 reason:远端音频流状态变化原因,具体请参见HRTCRemoteAudioStreamStateReason。
  • onFirstRemoteAuxiliaryStreamDecoded void onFirstRemoteAuxiliaryStreamDecoded(String roomId, String userId, int width, int height); 【功能说明】 接收到第一帧远端辅流并解码成功,触发此回调。 【回调参数】 roomId:视频流对应的房间ID。 userId:视频流对应的用户ID。 width:视频流宽。 height:视频流高。
  • onLocalVideoStateChangedNotify void onLocalVideoStateChangedNotify(HRTCLocalVideoStreamState state, HRTCLocalVideoStreamStateReason reason); 【功能说明】 本地视频流状态变化回调。 【回调参数】 state:本地视频流状态,具体请参见HRTCLocalVideoStreamState。 reason:本地视频流状态变化原因,具体请参见HRTCLocalVideoStreamStateReason
  • onRemoteVideoStateChangedNotify void onRemoteVideoStateChangedNotify(String userId, HRTCRemoteVideoStreamState state, HRTCRemoteVideoStreamStateReason reason); 【功能说明】 远端视频流状态变化回调。 【回调参数】 userId:远端用户ID。 state:远端视频流状态,具体请参见HRTCRemoteVideoStreamState。 reason:远端视频流状态变化原因,具体请参见HRTCRemoteVideoStreamStateReason。
  • onLeaveRoom virtual void onLeaveRoom(IHRTCConnection* conn, HRTCLeaveReason reason, const HRTCStatsInfo &statsInfo) 【功能说明】 离开房间,触发此回调。 【回调参数】 conn:连接对象。 reason:离开的房间原因,具体请参见HRTCLeaveReason。 statsInfo:卡顿统计信息,具体请参见HRTCStatsInfo。
  • onRemoteUserOffline virtual void onRemoteUserOffline(IHRTCConnection* conn, const char* userId, int reason) 【功能说明】 远端joiner用户离开当前房间,触发此回调。 本端用户离开当前房间,会回调当前房间所有用户offline。 【回调参数】 conn:连接对象。 userId:离开房间的远端用户ID。 reason:远端用户离线原因,预留参数。
  • onLocalAudioStateChangedNotify void onLocalAudioStateChangedNotify(HRTCLocalAudioStreamState state, HRTCLocalAudioStreamStateReason reason); 【功能说明】 本地音频流状态变化回调。 【回调参数】 state:本地音频流状态,具体请参见HRTCLocalAudioStreamState。 reason:本地音频流状态变化原因,具体请参见HRTCLocalAudioStreamStateReason。
  • onConnectionChangedNotify virtual void onConnectionChangedNotify(IHRTCConnection* conn, HRTCConnStateType state, HRTCConnChangeReason reason, const char* description) 【功能说明】 连接状态改变回调。 【回调参数】 conn:连接对象。 state:连接状态类型,具体请参见HRTCConnStateTypes。 reason:连接状态改变原因,具体请参见HRTCConnChangeReason。 description:连接状态改变描述。
  • onUserRoleChangedNotify virtual void onUserRoleChangedNotify(IHRTCConnection* conn, HRTCRoleType oldRole, HRTCRoleType newRole) 【功能说明】 用户角色切换成功,触发此回调。 【回调参数】 conn:连接对象。 oldRole:切换前的角色。具体请参见HRTCRoleType。 newRole:切换成功后的角色。具体请参见HRTCRoleType。
  • onRemoteUserOnline virtual void onRemoteUserOnline(IHRTCConnection* conn, const char* userId, const char* userName) 【功能说明】 远端joiner用户加入当前房间,触发此回调。该回调提示有远端joiner用户加入了房间,并返回新加入用户的ID。 【回调参数】 conn:连接对象。 userId:远端用户ID。 userName:远端用户昵称。
  • onRemoteUserNameChangedNotify virtual void onRemoteUserNameChangedNotify(IHRTCConnection* conn, const char* userId, const char* userName) 【功能说明】 远端用户昵称变化,触发此回调。 【回调参数】 conn:连接对象。 userId:用户ID。 userName:变更后的昵称。
  • onAudioMixStateChangedNotify void onAudioMixStateChangedNotify(HRTCAudioFileState state, HRTCAudioFileReason reason, long value); 【功能说明】 音频文件播放状态改变回调。 【回调参数】 state:音频文件播放状态,具体请参见HRTCAudioFileState。 reason:音频文件播放状态变化原因,具体请参见HRTCAudioFileReason。 value:state为HRTC_AUDIO_FILE_OPEN_COMPLETED表示音频文件的时长,单位为ms;state为HRTC_AUDIO_FILE_POSITION_UPDATE表示当前播放的位置,单位为ms。其他情况下,value值无意义。
  • onPlaybackExternalAudioFrame void onPlaybackExternalAudioFrame(String roomId,HRTCMediaDirection direction, HRTCAudioFrame audioFrame); 【功能说明】 回调远端的音频原始数据流。 【回调参数】 roomId:房间ID。 audioFrame:音频数据,具体请参见HRTCAudioFrame。 direction:数据源,本地数据,远端数据,具体请参见HRTCMediaDirection。
  • onMediaConnectStateChangedNotify void onMediaConnectStateChangedNotify(HRTCMediaConnStateTypes state, HRTCMediaConnChangeReason reason, String description); 【功能说明】 媒体服务器连接状态变更通知。 【回调参数】 state:连接状态,具体请参见HRTCMediaConnStateTypes。 reason:连接状态变化的原因,具体请参见HRTCMediaConnChangeReason。 description:连接状态变化原因描述。 加入房间过后,收到媒体服务的数据包时,返回Connected消息,超过6s没有收到包,则返回Failed消息。
  • onUserRoleChangedNotify void onUserRoleChangedNotify(String roomId, HRTCRoleType oldRole, HRTCRoleType newRole); 【功能说明】 用户角色改变。 【回调参数】 roomId:发生角色切换的房间号。 oldRole:改变前的角色,具体请参见HRTCRoleType。 newRole:改变后的角色,具体请参见HRTCRoleType。
  • onConnectionChangedNotify void onConnectionChangedNotify(HRTCConnStateTypes connStateTypes, HRTCConnChangeReason connChangeReason, String description); 【功能说明】 网络连接状态改变。 【回调参数】 connStateTypes:网络连接状态,具体请参见HRTCConnStateTypes。 connChangeReason:网络连接状态原因,具体请参见HRTCConnChangeReason。 description:描述。
  • onUserAuxiliaryStreamAvailable void onUserAuxiliaryStreamAvailable(String roomId, String userId, boolean available); 【功能说明】 辅流加入房间。 【回调参数】 roomId:房间ID。 userId:用户ID。 available:true表示辅流开始推送,false表示辅流停止推送,提示用户关闭共享。
  • SDK使用 创建引擎并初始化。 域名不需要设置,由SDK自动获取。appId获取方法请参见创建应用。 1 2 3 4 5 6 7 8 9 10 11 12 _rtcEngine = [HWRtcEngine sharedEngine]; HWRtcEngineConfig * cfg = [[HWRtcEngineConfig alloc]init]; cfg.appId = appid;// appId需在控制台中创建应用后获取 cfg.domain = domain;// 该字段已废弃,不需要再传值 cfg.countryCode = rtcCountryCode;// 可以根据Grs国家码对照表传值,建议传"CN" cfg.enableHaTrace = YES; cfg.logLevel = HWRtcLogLevelDebug;//输出DEBUG级别日志 cfg.logPath = [NSString stringWithFormat:@"%@/",logFilePath];//日志存储路径 cfg.enableLog = YES;//开启日志 cfg.logSize = 10*1024; cfg.muteAudioRoute = NO;//远端音频路由 [_rtcEngine initWithConfig:cfg]; 设置本地窗口。 1 2 3 4 5 HWRtcVideoCanvas *canvas = [[HWRtcVideoCanvas alloc] init]; canvas.view = [[UIView alloc] initWithFrame:CGRectMacke(0, 0, 90, 160)];//iOS //canvas.view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 90, 160)];//macOS canvas.uid = @"HW"; [_rtcEngine setupLocalVideo:canvas viewMode:HWRtcVideoDisplayModeFit]; 加入房间。 1 2 3 4 5 6 7 8 9 10 11 12 HWRtcJoinParam *joinParam = [[HWRtcJoinParam alloc]init]; NSString *authorization = @"";// 鉴权信息 joinParam.role = HWRtcRoleJoiner; joinParam.userId = @"HW"; // userId用于标识同一房间的不同用户 joinParam.userName = @"HW";// 用户昵称,如无特殊需求,保持和userId一致即可 joinParam.scenario = 1; joinParam.authorization = authorization; joinParam.ctime = time; joinParam.roomId = roomid; joinParam.autoSubscribeAudio = YES;//是否主动订阅音频 joinParam.autoSubscribeVideo = NO ;//默认-关闭 BOOL result = [self.rtcEngine joinRoom:joinParam ]; joinParam:入会参数,包含用户ID、用户名、房间号、认证信息、ctime、是否自动订阅音频和视频、SFU类型、场景和用户角色,具体请参见HWRtcJoinParam。 监听远端用户加入房间,并设置远端窗口。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 -(void)onRemoteUserOnline:(NSString*)roomId userId:(NSString*)userId userName:(NSString*)userName{ if([userId isEqualToString:localUid]){ return; } dispatch_async(dispatch_get_main_queue(), { UIView *videoView = [[UIVIew alloc] initWithFrame:CGRectMake(0, 0, 90, 160)];//iOS //NSView *videoView = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 90, 160)];//macOS [self.view addSubview:videoView]; HWRtcVideoCanvas *canvas = [[HWRtcVideoCanvas alloc] init]; canvas.uid = userId; canvas.view = videoView; int result = [self.rtcEngine startRemoteStreamView:canvas treamType:self.streamType]; if (result == 0) { [self.rtcEngine updateRemoteRenderMode:userId displayMode:HWRtcVideoDisplayModeFit mirrorMode:HWRtcVideoMirrorTypeDisable ]; } [self.viewsArray addObject:canvas]; }); } 监听远端用户离开房间,并删除远端窗口。 1 2 3 4 5 6 7 8 9 10 11 - (void)onRemoteUserOffline:(NSString *)roomId userId:(NSString *)userId reason:(NSInteger)reason { dispatch_async(dispatch_get_main_queue(), ^{ for (HWRtcVideoCanvas * canvas in self.viewsArray) { if ([userId isEqualToString:canvas.uid]) { [self.viewsArray removeObject:canvas]; } } }); } 离开房间。 [_rtcEngine leaveRoom]; 父主题: iOS/macOS SDK
  • 功能特性 华为云SparkRTC提供了视频通话、连麦互动等功能,如表1所示。 表1 功能列表 功能 说明 常见场景 视频通话 即1对1或多人视频通话,支持720P及以上高清画质。单个房间最多支持2000人同时在线,最高支持500人互动。 1对1视频通话、视频会议、在线问诊、多人视频聊天、视频客服、视频双录、在线理赔等。 语音通话 即1对1或多人语音通话,单个房间最多支持2000人同时在线,最高支持500人同时发言。 适用于1对1语音通话、多人语音通话、语音聊天、语音会议、语音客服等。 视频互动直播 支持视频连麦、跨直播间PK。 超低延时直播、超级大课堂、主播PK、远程培训、大型会议等。 语音互动直播 支持语音连麦、跨直播间PK。 语音低延时直播、语音直播连麦、K歌、FM电台等。 高音质 支持48kHz采样的高音质。 语音通话、视频通话、互动直播、高音质FM、音乐教学课、K歌房、在线课堂等。 高画质 支持720P、1080P的高清画质视频。 视频通话、互动直播、在线课堂等。 角色切换 支持房间内角色切换,观众自由、平滑上下麦,切换过程无需等待。 互动直播、在线课堂等。 单用户加入多房间 支持单个主播加入多个房间互动PK。 秀场直播、PK连麦、超级大班课等。 屏幕分享 支持将本地电脑桌面、窗口、画面区域分享给他人。 互动课堂、视频会议、远程协助等。 3A处理 行业领先的3A算法,在降噪等场景下提供更好的声音质量。3A即AEC(回声消除)、ANS(自动噪声抑制)、AGC(自动增益控制)。 所有语音场景。 音量大小回调 提供音量大小的数值,方便显示成波形动画或提示。 语音通话、视频通话、语聊房、FM电台、K歌房、人声检测等。 跨房连麦 支持主播跨房间连麦互动,观众可自由通过角色切换进行上下麦。 在线教育-子母课、连麦PK。 互动连麦 支持连麦互动,观众可自由通过角色切换进行上下麦,切换过程平滑。 在线教育-小班课、互动直播 云端录制 提供云端录制功能,支持单流/混流的模式将录制下来的文件存储到OBS或者点播服务中。 存储、录制审核、视频双录等。 文件混音 支持将本地或在线的音频和用户声音混音,发送给房间内其他用户。 在线教育、语聊房、在线合唱等。 旁路直播 将房间内的音视频流混流转码后推送RTMP的视频流给直播服务。 互动直播、大型会议等。 网络检测 支持通过网络检测接口判断或预测用户当前的网络状况是否良好。 - 自定义视频数据 支持自定义的视频源和渲染器,使用非摄像头的视频源,例如视频文件、外接设备、第三方定制数据源等。 自定义美颜、定制数据源、多设备管理、视频识别、图像处理等。 自定义音频数据 支持自己采集音频回调,开发者可以对原始数据进行处理,进行自定义操作,例如外接非标设备、音频文件等。 非标设备接入、自定义音频效果、语音处理、语音识别等。 平台兼容 支持Android、iOS、Mac、Windows、Web终端平台,各系统要求请参见使用限制。 -
  • 使用限制 在使用实时音视频前,您需要了解本服务的使用限制。 表1 使用限制 限制项 说明 应用创建 若首次使用SparkRTC,则需提交工单联系华为云技术客服进行咨询。 直播间人数 一个直播间最多支持500人同时通话。 Android SDK 系统版本:支持Android 5.0及以上版本。 终端架构:armeabi-v7和arm64-v8a。 iOS SDK 系统版本:支持iOS 8.0及以上版本。 终端CPU架构:arm64,arm32。 MAC SDK 系统版本:支持macOS 10.11或以上版本。 终端CPU架构:x86_64。 Windows SDK 系统版本:支持Windows 7或以上版本。 系统位数:32位。 Web SDK 支持Chrome、Firefox、Safari和Opera等主流浏览器,具体请参见Web浏览器适配。 不支持用于小程序集成开发。
  • 应用联调 在软件系统分别安装调试完成之后,需要进行充分的系统测试、联调测试及配置优化才能提供给用户方使用。因此,需要对系统的各个组成部分进行充分的测试,并按照实际测试结果调整、优化相关设备或软件的配置。具体内容有: 根据与用户方的沟通,制定系统联调及调优计划,同时请用户方做好内部相关部门的协调工作,配合实施系统联调和优化。 联调测试工作完成后,形成系统联调及调优报告,作为重要项目管理文档记录。 系统联调优化工作可能会涉及到多部门配合,需要用户方能提前做好协调好工作,协助系统联调优化工作的顺利实施,如: 服务组件功能调测:服务组件基本功能调测。 服务组件到接入数据的联调:从第三方系统或者底层数据仓库加载原始数据,汇聚、分析后写入到服务组件依赖的数据库。 第三方应用与服务组件对接:调测应用是否可以通过接口从服务组件获取数据。 第三方应用调测:第三方应用场景调测,页面及API在具体应用场景下的调测。 父主题: 实施步骤
  • 硬件资源准备 表1 资源准备列表 序号 内存 CPU 磁盘 硬盘空间分区 用途 备注 1 32G 16核 1 200GB 智慧教育数据中台(SaCa DataExchange SaCa DataQuality SaCa DataTransform SaCa DataCompare SaCa DataServices SaCa DataCatalog 按实际负载并发量增加硬件资源 2 32G 16核 2 200GB 3 64G 16核 1 200GB 4 32G 16核 2 200GB 5 32G 16核 2 200GB 6 32G 16核 2 200GB 7 32G 16核 2 200GB 智慧教育云平台-基础支撑平台(综合信息门户 统一身份认证 岗位角色平台) 8 32G 16核 2 200GB 9 32G 16核 2 200GB 10 32G 16核 2 200GB 11 32G 16核 2 200GB 智慧教育云平台-校园管理平台(教学管理服务 校园日常服务 学生日常管理服务 综合素质评价系统) 12 32G 16核 2 200GB 13 32G 16核 2 200GB 14 32G 16核 2 200GB
  • 软件准备 根据实施方案编制软件安装调试计划。在硬件环境就绪后,按照计划将系统软件进行安装部署与调试,主要内容包括: 服务器环境的检查确认; 系统软件程序的安装部署与记录; 对软件进行配置,并测试参数的正确性,对不合适的配置参数进行调整; 现场向用户方工程师进行培训,介绍软件安装调试、使用方法,并给予指导; 安装及调试完成后,进行连续测试,确保软件正常运行。 表2 专用软件清单 模块 软件项类型 版本号 软件包名称 统一用户认证管理、数字校园统一信息门户、数据填报组件、教育数据管理工具、教育业务管理门户、智慧校园应用 数据库 V8R6 KINGBASE集群版 操作系统 V10 银河麒麟 中间件 7.0V 东方通 管理服务 10.3.0 平台管理端 WEB服务 10.3.0 平台WEB端 备份服务 10.3.0 平台备份端 动态服务 2.0.0 应用开放平台 表3 通用与支撑软件清单 软件项名称 软件项描述 用途 版本 操作系统 客户端 Windows系统 浏览器 客户端 360浏览器
共100000条