• 沒有找到結果。

初始化等基础接口 sharedEnginesharedEngine

音频管理

4.4.1.2 初始化等基础接口 sharedEnginesharedEngine

+ (instancetype)sharedEngine;

【功能说明】

创建连麦引擎实例。

【请求参数】

【返回参数】

返回引擎实例对象。

destroy

- (void)destroy;

【功能说明】

注销引擎。

【请求参数】

【返回参数】

initWithConfig

- (int)initWithConfig:(HWRtcEngineConfig* _Nonnull)config;

【功能说明】

初始化引擎配置信息。

【请求参数】

config:引擎配置,具体请参见HWRtcEngineConfig。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

logUpload

- (int)logUpload;

【功能说明】

上传日志。

【请求参数】

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

将会触发以下回调:

onLogUploadResult:日志上传结果回调。

onLogUploadProgress:日志上传进度回调。

setEnableRtcStats

- (int)setEnableRtcStats:(BOOL)enable;

【功能说明】

打点开关。

在初始化前或初始化后调用,默认开启。

【请求参数】

enable:YES表示开启,NO表示关闭。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

getVersion

+ (NSString* _Nonnull)getVersion;

【功能说明】

获取当前SDK版本号。

【返回参数】

SDK当前版本号

setEncrytionParam

- (int)setEncrytionParam:(HWRTCEncryptionConfig *_Nonnull)cryptionParam;

【功能说明】

设置端到端加密方式。需要在加入房间前设置生效。其中sdk加密模式,需要设置16位 加密秘钥和加密算法,app加密模式需要先设置回调接口。

【请求参数】

cryptionParam:加密配置,具体请参见HWRTCEncryptionConfig。

【返回参数】

● 0:成功。

● <0:失败。具体请参见HWRtcErrorCode。

setAccessResourceType

- (int)setAccessResourceType:(int)resType;

【功能说明】

设置接入的环境,不支持跨房间场景。

【请求参数】

resType:环境类型。

● 0:公网sfu资源。

● 1:公司局Sfu。

● 2:MPC。

● 3:LLL。

【返回参数】

● 0:成功。

● <0:失败。具体请参见HWRtcErrorCode。

4.4.1.3 房间功能 joinRoom

- (int)joinRoom:(HWRtcJoinParam * _Nonnull)joinParam;

【功能说明】

加入房间。该方法让用户加入通话房间。如果已在通话中,用户必须调用leaveRoom 退出当前通话,才能进入下一个房间。

【请求参数】

joinParam:用户信息,具体请参见HWRtcJoinParam。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

会触发以下回调:

onConnStateChange:连接状态发生改变。

onJoinSuccess:加入房间成功。

onRemoteUserOnline:用户收到当前用户加入房间的通知。

onJoinRoomFailure:加入房间失败。

changeUserRole

- (int)changeUserRole:(HWRtcRole)role signature:(NSString *)authorization ctime:(long long)ctime;

【功能说明】

设置用户在当前房间内的角色类型,角色切换时使用。

【请求参数】

● role:用户角色类型,joiner类型和player类型,具体请参见HWRtcRole。

● authorization:预留参数,填null。

● ctime:预留参数,填0。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

● 加入房间前,可以通过joinRoom的userRole参数确认角色信息。

● 加入指定房间后才可以在指定房间内进行角色切换,当前仅支持joiner和player角色 切换。跨房场景下,通过对应connection连接下的changeUserRole接口实现在跨入 房间中的角色类型切换。

● 切换成功触发onUserRoleChange回调。切换失败会触发onError回调,错误码

HWRtcErrorCode :HWRtcErrorCodeUserRoleChangeFail。

● 同一时间不同房间最多只能有一个joiner,player切换joiner的时候,需要将其他房 间的joiner先切换成player。

● 不支持缺省用户昵称入会。

renewAuthorization

- (int)renewAuthorization:(NSString *_Nonnull)signature time:(long long)time;

【功能说明】

鉴权签名过期,收到onAuthorizationExpired签名鉴权过期回调后,更新鉴权签名。

【请求参数】

● signature:鉴权签名字串。

● time:过期时间。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

leaveRoom

- (int)leaveRoom;

【功能说明】

离开房间。

【请求参数】

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

● 必须调用leaveRoom结束通话后才可以开始下一次通话。

● 会触发以下回调:

onLeaveRoom:离开房间回调。

onConnStateChange:连接状态改变回调。

onRemoteUserOffline:远端用户收到当前用户离开房间的通知。

changeUserName

- (int)changeUserName:(NSString *)userName;

【功能说明】

房间内设置用户自己的昵称。

【请求参数】

userName:变更的昵称。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

● 该接口仅支持房间内调用,更改的昵称会被实时同步到房间内其他用户的用户列 表,退出房间不会保存,再次加入房间变更为加入房间时设置的昵称(参考

joinRoom接口注意事项)。

● 会触发用户名变更通知的回调onUserNameChangedNotify。

createConnection

- (HWRtcConnection *_Nullable)createConnection:(NSString *_Nullable)roomId;

【功能说明】

根据房间ID,创建HWRtcConnection对象,为跨房做准备。

通过此接口创建一个与房间关联的HWRtcConnection连接对象。

该方法支持多次调用,创建多个HWRtcConnection连接对象,调用每个对象中的 joinRoom方法,可以同时加入到多个房间。在每个房间中,可以分别订阅和选看房间 中的用户。

具体请参见事件回调(HWRtcConnection)有关接口和回调。

【请求参数】

roomid:房间ID。

【返回参数】

HWRtcConnection:成功返回连接对象指针,失败返回为空。

注意

● 同一时间最多只能创建4个连接对象,每个连接对象对应的房间ID必须互不相同。

● 如果使用HWRtcConnection对象加入房间,则加入房间的房间ID不能和已创建连接 对象对应的房间ID相同。

● 同一时间只能以JOINER角色加入某一个房间。

4.4.1.4 音频管理 muteLocalAudio

- (int)muteLocalAudio:(BOOL)mute;

【功能说明】

设置是否关闭本地音频流发送。

【请求参数】

mute:YES表示关闭音频流发送,NO表示开启音频流发送。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

● 默认开启本地音频发流。

● 关闭本地音频发流,不影响本地音频采集。

● 远端用户订阅该用户时,远端用户会收到onRemoteAudioStateChangedNotify远 端流状态变化回调。

enableLocalAudioStream

- (int)enableLocalAudioStream:(BOOL)enable;

【功能说明】

设置是否开启本地麦克风采集音频。

【请求参数】

enable:YES表示开启,NO表示关闭。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

● 默认开启,关闭不会影响音频流发送。

● 远端用户订阅该用户时,远端用户会收到onRemoteAudioStateChangedNotify远 端流状态变化回调。

muteRemoteAudio

- (int)muteRemoteAudio:(NSString *)userid muted:(BOOL)muted;

【功能说明】

订阅或取消订阅对应远端用户的音频流。同一时间所有房间最多只能接收17路音频 流。

【请求参数】

● userid : 远端用户的id,唯一的标识。

● muted:YES表示取消订阅,NO表示订阅。默认值 NO。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

muteAllRemoteAudio

- (int)muteAllRemoteAudio:(BOOL)muted;

【功能说明】

订阅或取消订阅当前房间全部用户的音频流。

【请求参数】

muted:YES表示取消订阅,NO表示订阅。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

● 取消所有音频流接收,同时也会取消接收新加入用户的音频流。

● 开启所有音频流接收,同时也会开启接收新加入用户的音频流。

● 默认开启所有音频流接收。

setVolumeNotifyInterval

- (int)setVolumeNotifyInterval:(int)volInterval;

【功能说明】

指定音量提示的时间间隔, 设置后按时间间隔触发回调,包括用户音量回调 onUserVolumeStatsNotify,本地采集音量回调onLocalVolumeChangedNotify。

【请求参数】

volInterval:间隔时间, 0 关闭音量上报不再触发回调 。volInterval取值范围是[100 10000]ms。建议设置为2000ms,默认值为2000ms。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

adjustRecordingVolume

- (int)adjustRecordingVolume:(unsigned int)volume;

【功能说明】

调整录制音量值。

【请求参数】

volume:音量值,取值范围:[0,100],默认音量值为10, 此接口不会影响系统音 量。

【返回参数】

● 0:方法调用成功。

● >0:方法调用失败,具体请参见HWRtcErrorCode。

adjustPlaybackVolume

- (int)adjustPlaybackVolume:(unsigned int)volume;

- (int)adjustPlaybackVolume:(NSString *)userid volume :(unsigned int)volume;

【功能说明】

设置扬声器播放的音量。

【请求参数】

● volume:范围[0-100],其中10表示原始音量。

● userid:用户id。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

不影响系统音量。

setShareComputerSound

- (int)setShareComputerSound:(BOOL)enable;

【功能说明】

共享声音。

【请求参数】

enable:YES表示开启,NO表示关闭。 默认关闭。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HRTCErrorCode。

注意

● 用户需要从华为云获取共享音频驱动HWMeetAudioDevice.driver.zip,解压到 Resource文件夹(如果没有Resource文件夹,则需要创建)。

● 首次打开共享系统声音功能,需要获取管理员权限安装驱动。

sendAudioSeiMsg

- (int)sendAudioSeiMsg:(NSString *)message repeateCount:(int)repeateCount;

【功能说明】

发送音频SEI消息。

【请求参数】

● message:发送的内容。

● repeateCount:发送次数(1-10)。根据需要填发送次数,一般发1次。

【返回参数】

● 0:方法调用成功。

● < 0:方法调用失败。具体请参见HRTCErrorCode。

setDefaultSpeakerModel

- (int)setDefaultSpeakerModel:(HWRtcSpeakerModel)speakerModel;

【功能说明】

设置默认的声音播放模式,在房间外调用。

【请求参数】

speakerModel:声音播放模式,具体请参见HWRtcSpeakerModel。默认值为 HWRtcSpeakerModelSpeaker。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HRTCErrorCode。

setAudioFrameRecordParameters

- (int)setAudioFrameRecordParameters:(int)sampleRate channel:(int)channel mode:

(HWRTCAudioOperateMode)mode samplesPerCall:(int)samplesPerCall;

【功能说明】

设置采集回调参数,配合setAudioFrameObserver的onAudioFrameRecord使用。

【请求参数】

● sampleRate:onAudioFrameRecord中返回的采样率,可设置为8000,16000,

32000,44100,48000。

● channel:声道,1表示单声道;2表示双声道。

● mode:可读可写模式,具体请参见HWRTCAudioOperateMode。

● samplesPerCall:每次回调的单声道样点数(小于(sampleRate/

100)*channel*2*3, 大于(sample/300)*channel*3)。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HRTCErrorCode。

setAudioConfig

- (int)setAudioConfig:(HWRtcAudioQualityLevel)level scene:(HWRtcAudioSceneType)scene;

【功能说明】

设置使用场景。

【请求参数】

● level:表示档位,暂时只支持16k。具体请参见HWRtcAudioQualityLevel。

● scene:表示音频模式,具体请参见HWRtcAudioSceneType。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

sendCommandData

- (int)sendCommandData:(NSString * _Nonnull)userid data:(NSString * _Nonnull)data;

【功能说明】

媒体通道Cmd命令数据包转发。

【请求参数】

● userId:用户id,空字符表示广播消息。

● data:数据包。

● length:数据包长度。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HRTCErrorCode。

enableCommandMsg

- (int)enableCommandMsg:(BOOL)enable;

【功能说明】

是否开启媒体通道发数据包功能,该接口需要在joinRoom前调用。

【请求参数】

enable:true表示开启,false表示关闭。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HRTCErrorCode。

4.4.1.5 视频管理 enableLocalVideo

- (int)enableLocalVideo:(BOOL)enable;

【功能说明】

设置是否开启摄像头采集视频。

【请求参数】

enable:YES表示开启,NO表示关闭。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

● 默认开启本地视频采集,关闭不会影响视频流发送。

● 远端用户订阅了本端用户时,会收到onRemoteVideoStateChange远端流状态变 化回调。

setVideoEncoderConfig

- (int)setVideoEncoderConfig:(HWRtcVideoEncode * _Nonnull)encParam;

- (int)setVideoEncoderConfig:(NSArray<HWRtcVideoEncode*>*)videoEncodes totalBitRate:(int)totalBitRate;

- (int)setVideoEncoderConfig:(HWRtcVideoEncode * _Nonnull)encParam;

【功能说明】

接口一:大小流模式设置大流发流编码参数。大流必须开启,小流建议开启。

接口二:多流模式,设置发流编码参数。可支持720P到90P的四路流同时推送。

接口三:设置辅流能力。

【请求参数】

● encParam:视频编码参数。包括流类型、宽、高、码率、帧率等。具体请参见

HWRtcVideoEncode。

● videoEncodes:视频编码参数数组,包括流类型、宽、高、码率、帧率等。具体 请参见HWRtcVideoEncode。

● totalBitRate:总带宽。

【返回参数】

● 0:方法调用成功。

● > 0:方法调用失败。具体请参见HWRtcErrorCode。

注意

● 华为SDK系统有默认的编码设置(720P+360P),一般可以不设置发流编码参数。

如果您确实需要自定义发流编码参数,请参考华为SDK系统推荐码表:表4-82和表

4-83,否则可能设置失败。

● 两重构接口针对不同使用方式并不通用,如果您使用的新选看系列接口

setupRemoteView,需配套使用接口一大小流模式设置发流编码参数的

setVideoEncoderConfig,enableSmallVideoStream接口来自定义您的发流编码

参数。同理使用旧的选看接口startRemoteStreamView需配套使用接口二:多流模 式设置发流编码参数setVideoEncoderConfig接口。

● 同一端大小流或多流模式多路流设置的分辨率需保持一致,否则会设置失败。

● 多终端发流和选看的分辨率不一致时,sdk默认自适应并匹配最接近的分辨率(以 实际发流分辨率优先),可能会导致选看时设置的分辨率和实际收到的流分辨率不 一致。

● 调用接口一设置编码参数的分辨率发生变化时,需要先enableSmallVideoStream 关闭小流,否则会因为分辨率一致条件限制导致大流设置失败。即涉及分辨率变化

● 调用接口一设置编码参数的分辨率发生变化时,需要先enableSmallVideoStream 关闭小流,否则会因为分辨率一致条件限制导致大流设置失败。即涉及分辨率变化