wangguolei

Merge branch 'feature/face_auth' into 'master'

Feature/face auth 分支合并

Feature/face auth 分支合并

See merge request !12
Showing 100 changed files with 499 additions and 255 deletions

Too many changes to show.

To preserve performance only 100 of 100+ files are displayed.

Pod::Spec.new do |s|
s.name = "HHVDoctorSDK"
s.version = "3.2.0.01261430"
s.version = "3.4.0.02151124"
s.summary = "和缓视频医生 SDK"
s.description = <<-DESC
... ...
/**
* Module: TRTCCloud @ TXLiteAVSDK
* Function: 腾讯云 TRTC 主功能接口
* Version: 9.2.10637
* Version: 9.5.11230
*/
#import <Foundation/Foundation.h>
#import <VideoToolbox/VideoToolbox.h>
... ... @@ -200,11 +200,11 @@
*
* 您可以通过该接口在“自动订阅”和“手动订阅”两种模式下进行切换:
* - 自动订阅:默认模式,用户在进入房间后会立刻接收到该房间中的音视频流,音频会自动播放,视频会自动开始解码(依然需要您通过 startRemoteView 接口绑定渲染控件)。
* - 手动订阅:在用户进入房间后,需要手动调用 {@startRemoteView} 接口才能启动视频流的订阅和解码,需要手动调用 {@muteRemoteAudio} (false) 接口才能启动声音的播放。
* - 手动订阅:在用户进入房间后,需要手动调用 {@startRemoteView} 接口才能启动视频流的订阅和解码,需要手动调用 {@muteRemoteAudio} (NO) 接口才能启动声音的播放。
*
* 在绝大多数场景下,用户进入房间后都会订阅房间中所有主播的音视频流,因此 TRTC 默认采用了自动订阅模式,以求得最佳的“秒开体验”。
* 如果您的应用场景中每个房间同时会有很多路音视频流在发布,而每个用户只想选择性地订阅其中的 1-2 路,则推荐使用“手动订阅”模式以节省流量费用。
* @param autoRecvAudio YES:自动订阅音频;NO:需手动调用 muteRemoteAudio(false) 订阅音频。默认值:YES。
* @param autoRecvAudio YES:自动订阅音频;NO:需手动调用 muteRemoteAudio(NO) 订阅音频。默认值:YES。
* @param autoRecvVideo YES:自动订阅视频;NO:需手动调用 startRemoteView 订阅视频。默认值:YES。
* @note
* 1. 需要在进入房间(enterRoom)前调用该接口,设置才能生效。
... ... @@ -226,15 +226,15 @@
* //...
* //Switch the role from "anchor" to "audience" in your own room
* [mainCloud switchRole:TRTCRoleAudience];
* [mainCloud muteLocalVideo:true];
* [mainCloud muteLocalAudio:true];
* [mainCloud muteLocalVideo:YES];
* [mainCloud muteLocalAudio:YES];
* //...
* //Use subcloud to enter another room and switch the role from "audience" to "anchor"
* TRTCCloud *subCloud = [mainCloud createSubCloud];
* [subCloud enterRoom:params2 appScene:TRTCAppSceneLIVE)];
* [subCloud switchRole:TRTCRoleAnchor];
* [subCloud muteLocalVideo:false];
* [subCloud muteLocalAudio:false];
* [subCloud muteLocalVideo:NO];
* [subCloud muteLocalAudio:NO];
* //...
* //Exit from new room and release it.
* [subCloud exitRoom];
... ... @@ -331,6 +331,7 @@
* </pre>
* @param config 如果 config 不为空,则开启云端混流,如果 config 为空则停止云端混流。详情请参考 {@link TRTCTranscodingConfig} 。
* @note 关于云端混流的注意事项:
* - 混流转码为收费功能,调用接口将产生云端混流转码费用,详见 https://cloud.tencent.com/document/product/647/49446 。
* - 调用该接口的用户,如果没设定 config 参数中的 streamId 字段,TRTC 会将房间中的多路画面混合到当前用户所对应的音视频流上,即 A + B => A。
* - 调用该接口的用户,如果设定了 config 参数中的 streamId 字段,TRTC 会将房间中的多路画面混合到您指定的 streamId 上,即 A + B => streamId。
* - 请注意,若您还在房间中且不再需要混流,请务必再次调用本接口并将 config 设置为空以进行取消,不及时取消混流可能会引起不必要的计费损失。
... ... @@ -357,7 +358,7 @@
* @param view 承载视频画面的控件
* @note 如果希望开播前预览摄像头画面并通过 BeautyManager 调节美颜参数,您可以:
* - 方案一:在调用 enterRoom 之前调用 startLocalPreview
* - 方案二:在调用 enterRoom 之后调用 startLocalPreview + muteLocalVideo(true)
* - 方案二:在调用 enterRoom 之后调用 startLocalPreview + muteLocalVideo(YES)
*/
#if TARGET_OS_IPHONE
- (void)startLocalPreview:(BOOL)frontCamera view:(TXView *)view;
... ... @@ -373,7 +374,7 @@
* @param view 承载视频画面的控件
* @note 如果希望开播前预览摄像头画面并通过 BeautyManager 调节美颜参数,您可以:
* - 方案一:在调用 enterRoom 之前调用 startLocalPreview
* - 方案二:在调用 enterRoom 之后调用 startLocalPreview + muteLocalVideo(true)
* - 方案二:在调用 enterRoom 之后调用 startLocalPreview + muteLocalVideo(YES)
*/
#if !TARGET_OS_IPHONE && TARGET_OS_MAC
- (void)startLocalPreview:(TXView *)view;
... ... @@ -399,14 +400,14 @@
* 当暂停/恢复发布指定 TRTCVideoStreamTypeBig 后,同一房间中的其他用户将会收到 onUserVideoAvailable 回调通知。
* 当暂停/恢复发布指定 TRTCVideoStreamTypeSub 后,同一房间中的其他用户将会收到 onUserSubStreamAvailable 回调通知。
* @param streamType 要暂停/恢复的视频流类型(仅支持 {@link TRTCVideoStreamTypeBig} 和 {@link TRTCVideoStreamTypeSub})
* @param mute true:暂停;false:恢复。
* @param mute YES:暂停;NO:恢复。
*/
- (void)muteLocalVideo:(TRTCVideoStreamType)streamType mute:(BOOL)mute;
/**
* 4.6 设置本地画面被暂停期间的替代图片
*
* 当您调用 muteLocalVideo(true) 暂停本地画面时,您可以通过调用本接口设置一张替代图片,设置后,房间中的其他用户会看到这张替代图片,而不是黑屏画面。
* 当您调用 muteLocalVideo(YES) 暂停本地画面时,您可以通过调用本接口设置一张替代图片,设置后,房间中的其他用户会看到这张替代图片,而不是黑屏画面。
* @param image 设置替代图片,空值代表在 muteLocalVideo 之后不再发送视频流数据,默认值为空。
* @param fps 设置替代图片帧率,最小值为5,最大值为10,默认5。
*/
... ... @@ -533,7 +534,7 @@
* 4.18 设置编码器输出的画面镜像模式
*
* 该设置不影响本地画面的镜像模式,但会影响房间中其他用户所观看到(以及云端录制文件)的镜像模式。
* @param mirror 是否开启远端镜像,true:开启远端画面镜像;false:关闭远端画面镜像,默认值:false
* @param mirror 是否开启远端镜像,YES:开启远端画面镜像;NO:关闭远端画面镜像,默认值:NO
*/
- (void)setVideoEncoderMirror:(BOOL)mirror;
... ... @@ -553,7 +554,7 @@
* 开启双路编码模式后,当前用户的编码器会同时输出【高清大画面】和【低清小画面】两路视频流(但只有一路音频流)。
* 如此以来,房间中的其他用户就可以根据自身的网络情况或屏幕大小选择订阅【高清大画面】或是【低清小画面】。
* @note 双路编码开启后,会消耗更多的 CPU 和 网络带宽,所以 Mac、Windows 或者高性能 Pad 可以考虑开启,不建议手机端开启。
* @param enable 是否开启小画面编码,默认值:false
* @param enable 是否开启小画面编码,默认值:NO
* @param smallVideoEncParam 小流的视频参数
* @return 0:成功;-1:当前大画面已被设置为较低画质,开启双路编码已无必要。
*/
... ... @@ -594,7 +595,7 @@
* 5.1 开启本地音频的采集和发布
*
* SDK 默认不开启麦克风,当用户需要发布本地音频时,需要调用该接口开启麦克风采集,并将音频编码并发布到当前的房间中。
* 开启本地音频的采集和发布后,房间中的其他用户会收到 {@link onUserAudioAvailable}(userId, true) 的通知。
* 开启本地音频的采集和发布后,房间中的其他用户会收到 {@link onUserAudioAvailable}(userId, YES) 的通知。
* @param quality 声音音质
* - {@link TRTCAudioQualitySpeech},流畅:采样率:16k;单声道;音频裸码率:16kbps;适合语音通话为主的场景,比如在线会议,语音通话。
* - {@link TRTCAudioQualityDefault},默认:采样率:48k;单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。
... ... @@ -606,19 +607,19 @@
/**
* 5.2 停止本地音频的采集和发布
*
* 停止本地音频的采集和发布后,房间中的其他用户会收到 {@link onUserAudioAvailable}(userId, false) 的通知。
* 停止本地音频的采集和发布后,房间中的其他用户会收到 {@link onUserAudioAvailable}(userId, NO) 的通知。
*/
- (void)stopLocalAudio;
/**
* 5.3 暂停/恢复发布本地的音频流
*
* 当您暂停发布本地音频流之后,房间中的其他他用户会收到 {@link onUserAudioAvailable}(userId, false) 的通知。
* 当您恢复发布本地音频流之后,房间中的其他他用户会收到 {@link onUserAudioAvailable}(userId, true) 的通知。
* 与 {@link stopLocalAudio} 的不同之处在于,muteLocalAudio(true) 并不会释放麦克风权限,而是继续发送码率极低的静音包。
* 当您暂停发布本地音频流之后,房间中的其他他用户会收到 {@link onUserAudioAvailable}(userId, NO) 的通知。
* 当您恢复发布本地音频流之后,房间中的其他他用户会收到 {@link onUserAudioAvailable}(userId, YES) 的通知。
* 与 {@link stopLocalAudio} 的不同之处在于,muteLocalAudio(YES) 并不会释放麦克风权限,而是继续发送码率极低的静音包。
* 这对于需要云端录制的场景非常适用,因为 MP4 等格式的视频文件,对于音频数据的连续性要求很高,使用 {@link stopLocalAudio} 会导致录制出的 MP4 文件不易播放。
* 因此在对录制文件的质量要求较高的场景中,建议选择 muteLocalAudio 而不建议使用 stopLocalAudio。
* @param mute true:静音;false:恢复。
* @param mute YES:静音;NO:恢复。
*/
- (void)muteLocalAudio:(BOOL)mute;
... ... @@ -627,8 +628,8 @@
*
* 当您静音某用户的远端音频时,SDK 会停止播放指定用户的声音,同时也会停止拉取该用户的音频数据数据。
* @param userId 用于指定远端用户的 ID。
* @param mute true:静音;false:取消静音。
* @note 在进入房间(enterRoom)之前或之后调用本接口均生效,静音状态在退出房间(exitRoom) 之后会被重置为 false。
* @param mute YES:静音;NO:取消静音。
* @note 在进入房间(enterRoom)之前或之后调用本接口均生效,静音状态在退出房间(exitRoom) 之后会被重置为 NO。
*/
- (void)muteRemoteAudio:(NSString *)userId mute:(BOOL)mute;
... ... @@ -636,8 +637,8 @@
* 5.5 暂停/恢复播放所有远端用户的音频流
*
* 当您静音所有用户的远端音频时,SDK 会停止播放所有来自远端的音频流,同时也会停止拉取所有用户的音频数据。
* @param mute true:静音;false:取消静音。
* @note 在进入房间(enterRoom)之前或之后调用本接口均生效,静音状态在退出房间(exitRoom) 之后会被重置为 false。
* @param mute YES:静音;NO:取消静音。
* @note 在进入房间(enterRoom)之前或之后调用本接口均生效,静音状态在退出房间(exitRoom) 之后会被重置为 NO。
*/
- (void)muteAllRemoteAudio:(BOOL)mute;
... ... @@ -731,6 +732,14 @@
*/
- (void)stopLocalRecording;
/**
* 5.18 设置远端音频流智能并发播放策略
*
* 设置远端音频流智能并发播放策略,适用于上麦人数比较多的场景。
* @param params 音频并发参数,请参考 {@link TRTCAudioParallelParams}
*/
- (void)setRemoteAudioParallelParams:(TRTCAudioParallelParams *)params;
/// @}
/////////////////////////////////////////////////////////////////////////////////
//
... ... @@ -803,7 +812,7 @@
* - 耳机耳返:麦克风捕捉的声音实时通过耳机播放,常用于音乐直播。
* - 混响效果:KTV、小房间、大会堂、低沉、洪亮...
* - 变声特效:萝莉、大叔、重金属...
* - 短音效:鼓掌声、欢笑声等简短的音效文件(对于小于10秒的文件,请将 isShortFile 参数设置为 true)。
* - 短音效:鼓掌声、欢笑声等简短的音效文件(对于小于10秒的文件,请将 isShortFile 参数设置为 YES)。
*/
- (TXAudioEffectManager *)getAudioEffectManager;
... ... @@ -947,7 +956,7 @@
#endif
/**
* 9.7 设置屏幕分享(即辅路)的视频编码参数(该接口仅支持桌面系统
* 9.7 设置屏幕分享(即辅路)的视频编码参数(桌面系统和移动系统均已支持
*
* 该接口可以设定远端用户所看到的屏幕分享(即辅路)的画面质量,同时也能决定云端录制出的视频文件中屏幕分享的画面质量。
* 请注意如下两个接口的差异:
... ... @@ -1048,7 +1057,7 @@
* 开启该模式后,SDK 不在运行原有的视频采集流程,即不再继续从摄像头采集数据和美颜,而是只保留视频编码和发送能力。
* 您需要通过 {@link sendCustomVideoData} 不断地向 SDK 塞入自己采集的视频画面。
* @param streamType 用于指定视频流类型,{@link TRTCVideoStreamTypeBig}:高清大画面;{@link TRTCVideoStreamTypeSub}:辅路画面。
* @param enable 是否启用,默认值:false
* @param enable 是否启用,默认值:NO
*/
- (void)enableCustomVideoCapture:(TRTCVideoStreamType)streamType enable:(BOOL)enable;
... ... @@ -1080,7 +1089,7 @@
*
* 开启该模式后,SDK 不在运行原有的音频采集流程,即不再继续从麦克风采集音频数据,而是只保留音频编码和发送能力。
* 您需要通过 {@link sendCustomAudioData} 不断地向 SDK 塞入自己采集的音频数据。
* @param enable 是否启用,默认值:false
* @param enable 是否启用,默认值:NO
* @note 由于回声抵消(AEC)需要严格的控制声音采集和播放的时间,所以开启自定义音频采集后,AEC 能力可能会失效。
*/
- (void)enableCustomAudioCapture:(BOOL)enable;
... ... @@ -1105,9 +1114,9 @@
* 10.5 启用/关闭自定义音轨
*
* 开启后,您可以通过本接口向 SDK 混入一条自定义的音轨。通过两个布尔型参数,您可以控制该音轨是否要在远端和本地播放。
* @param enablePublish 控制混入的音轨是否要在远端播放,默认值:false。
* @param enablePlayout 控制混入的音轨是否要在本地播放,默认值:false。
* @note 如果您指定参数 enablePublish 和 enablePlayout 均为 false,代表完全关闭您的自定义音轨。
* @param enablePublish 控制混入的音轨是否要在远端播放,默认值:NO。
* @param enablePlayout 控制混入的音轨是否要在本地播放,默认值:NO。
* @note 如果您指定参数 enablePublish 和 enablePlayout 均为 NO,代表完全关闭您的自定义音轨。
*/
- (void)enableMixExternalAudioFrame:(BOOL)enablePublish playout:(BOOL)enablePlayout;
... ... @@ -1310,12 +1319,12 @@
* @param data 待发送的消息,单个消息的最大长度被限制为 1KB。
* @param reliable 是否可靠发送,可靠发送可以获得更高的发送成功率,但可靠发送比不可靠发送会带来更大的接收延迟。
* @param ordered 是否要求有序,即是否要求接收端的数据包顺序和发送端的数据包顺序一致(这会带来一定的接收延时)。
* @return true:消息已经发出;false:消息发送失败。
* @return YES:消息已经发出;NO:消息发送失败。
* @note
* 1. 发送消息到房间内所有用户(暂时不支持 Web/小程序端),每秒最多能发送30条消息。
* 2. 每个包最大为 1KB,超过则很有可能会被中间路由器或者服务器丢弃。
* 3. 每个客户端每秒最多能发送总计 8KB 数据。
* 4. 请将 reliable 和 ordered 同时设置为 true 或同时设置为 flase,暂不支持交叉设置。
* 4. 请将 reliable 和 ordered 同时设置为 YES 或同时设置为 NO,暂不支持交叉设置。
* 5. 强烈建议您将不同类型的消息设定为不同的 cmdID,这样可以在要求有序的情况下减小消息时延。
*/
- (BOOL)sendCustomCmdMsg:(NSInteger)cmdID data:(NSData *)data reliable:(BOOL)reliable ordered:(BOOL)ordered;
... ... @@ -1352,19 +1361,16 @@
/// @{
/**
* 12.1 开始进行网络测速(进入房间前使用)
* 12.1 开始进行网速测试(进入房间前使用)
*
* TRTC 由于涉及的是对传输时延要求很苛刻的实时音视频传输服务,因此对网络的稳定性要求会比较高。
* 很多用户在网络环境达不到 TRTC 的最低使用门槛时,直接进入房间可能会导致非常不好的用户体验。
* 推荐的做法是在用户进入房间前进行网络测速,当用户网络较差时通过 UI 交互提醒用户切换到更加稳定的网络(比如 WiFi 切换到 4G )后再进入房间。
* @param params 测速选项
* @return 接口调用结果,< 0:失败
* @note
* 1. 测速本身会消耗一定的流量,所以也会产生少量额外的流量费用。
* 2. 请在进入房间前进行测速,在房间中测速会影响正常的音视频传输效果,而且由于干扰过多,测速结果也不准确。
* @param sdkAppId 应用标识,请参考 {@link TRTCParams} 中的相关说明。
* @param userId 用户标识,请参考 {@link TRTCParams} 中的相关说明。
* @param userSig 用户签名,请参考 {@link TRTCParams} 中的相关说明。
* 1. 测速过程将产生少量的基础服务费用,详见 [计费概述 > 基础服务](https://cloud.tencent.com/document/product/647/17157#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1) 文档说明。
* 2. 请在进入房间前进行网速测试,在房间中网速测试会影响正常的音视频传输效果,而且由于干扰过多,网速测试结果也不准确。
* 3. 同一时间只允许一项网速测试任务运行。
*/
- (void)startSpeedTest:(uint32_t)sdkAppId userId:(NSString *)userId userSig:(NSString *)userSig completion:(void (^)(TRTCSpeedTestResult *result, NSInteger completedCount, NSInteger totalCount))completion;
- (int)startSpeedTest:(TRTCSpeedTestParams *)params;
/**
* 12.2 停止网络测速
... ... @@ -2104,9 +2110,9 @@
/**
* 设置系统音量类型
*
* @deprecated v8.0 版本开始不推荐使用,建议使用 {@link TXDeviceManager} 中的 setSystemVolumeType 接口替代之
* @deprecated v8.0 版本开始不推荐使用,建议使用 {@link startLocalAudio:}(quality) 替代之,通过 quality 参数来决策音质
*/
- (void)setSystemVolumeType:(TRTCSystemVolumeType)type __attribute__((deprecated("use getDeviceManager instead")));
- (void)setSystemVolumeType:(TRTCSystemVolumeType)type __attribute__((deprecated("use startLocalAudio:quality instead")));
/**
* 视频截图
... ... @@ -2157,6 +2163,16 @@
*/
- (void)muteRemoteVideoStream:(NSString *)userId mute:(BOOL)mute __attribute__((deprecated("use muteRemoteVideoStream:userid,streamType:mute: instead")));
/**
* 开始进行网络测速(进入房间前使用)
*
* @deprecated v9.2 版本开始不推荐使用,建议使用 startSpeedTest(params) 接口替代之。
*/
- (void)startSpeedTest:(uint32_t)sdkAppId
userId:(NSString *)userId
userSig:(NSString *)userSig
completion:(void (^)(TRTCSpeedTestResult *result, NSInteger completedCount, NSInteger totalCount))completion __attribute__((deprecated("use startSpeedTest: instead")));
/// @}
@end
/// @}
... ...
... ... @@ -1029,31 +1029,65 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
/**
* 5.7 网络测速结果
* 5.7 测速参数
*
* 您可以在用户进入房间前通过 {@link startSpeedTest} 接口进行测速(注意:请不要在通话中调用),
* 测速结果会每2 - 3秒钟返回一次,每次返回一个 IP 地址的测试结果。
* 您可以在用户进入房间前通过 {@link startSpeedTest} 接口测试网速(注意:请不要在通话中调用)。
*/
@interface TRTCSpeedTestParams : NSObject
///应用标识,请参考 {@link TRTCParams} 中的相关说明。
@property(nonatomic) uint32_t sdkAppId;
///用户标识,请参考 {@link TRTCParams} 中的相关说明。
@property(nonatomic, copy, nonnull) NSString *userId;
///用户签名,请参考 {@link TRTCParams} 中的相关说明。
@property(nonatomic, copy, nonnull) NSString *userSig;
///预期的上行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)。
@property(nonatomic) NSInteger expectedUpBandwidth;
///预期的下行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)。
@property(nonatomic) NSInteger expectedDownBandwidth;
@end
/**
* 5.8 网络测速结果
*
* 您可以在用户进入房间前通过 {@link startSpeedTest:} 接口进行测速(注意:请不要在通话中调用)。
*/
@interface TRTCSpeedTestResult : NSObject
///服务器 IP 地址
@property(strong, nonatomic, nonnull) NSString *ip;
///测试是否成功。
@property(nonatomic) BOOL success;
///带宽测试错误信息。
@property(nonatomic, copy, nonnull) NSString *errMsg;
///内部通过评估算法测算出的网络质量,网络质量越好得分越高。
///服务器 IP 地址。
@property(nonatomic, copy, nonnull) NSString *ip;
///内部通过评估算法测算出的网络质量,更多信息请参见 {@link TRTCQuality}。
@property(nonatomic) TRTCQuality quality;
///上行丢包率,取值范围是 [0 - 1.0],例如 0.3 表示每向服务器发送10个数据包可能会在中途丢失3个。
///上行丢包率,取值范围是 [0 - 1.0],例如 0.3 表示每向服务器发送 10 个数据包可能会在中途丢失 3 个。
@property(nonatomic) float upLostRate;
///下行丢包率,取值范围是 [0 - 1.0],例如 0.2 表示每从服务器收取10个数据包可能会在中途丢失2个。
///下行丢包率,取值范围是 [0 - 1.0],例如 0.2 表示每从服务器收取 10 个数据包可能会在中途丢失 2 个。
@property(nonatomic) float downLostRate;
///延迟(毫秒),指当前设备到 TRTC 服务器的一次网络往返时间,该值越小越好,正常数值范围是10ms - 100ms。
@property(nonatomic) uint32_t rtt;
///上行带宽(kbps,-1:无效值)。
@property(nonatomic) NSInteger availableUpBandwidth;
///下行带宽(kbps,-1:无效值)。
@property(nonatomic) NSInteger availableDownBandwidth;
@end
/**
* 5.9 视频帧信息
* 5.10 视频帧信息
*
* TRTCVideoFrame 用来描述一帧视频画面的裸数据,也就是编码前或者解码后的视频画面数据。
*/
... ... @@ -1090,7 +1124,7 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
/**
* 5.10 音频帧数据
* 5.11 音频帧数据
*/
@interface TRTCAudioFrame : NSObject
... ... @@ -1111,7 +1145,7 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
/**
* 5.11 云端混流中各路画面的描述信息
* 5.12 云端混流中各路画面的描述信息
*
* TRTCMixUser 用于指定云端混流中每一路视频画面的位置、大小、图层以及流类型等信息。
*/
... ... @@ -1146,7 +1180,7 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
/**
* 5.12 云端混流的排版布局和转码参数
* 5.13 云端混流的排版布局和转码参数
*
* 用于指定混流时各路画面的排版位置信息和云端转码的编码参数。
*/
... ... @@ -1207,6 +1241,13 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
///【推荐取值】默认值:1,代表单声道。可设定的数值只有两个数字:1-单声道,2-双声道。
@property(nonatomic, assign) int audioChannels;
///【字段含义】指定云端转码的输出流音频编码类型
///【推荐取值】默认值:0,代表LC-AAC。可设定的数值只有三个数字:0 - LC-AAC,1 - HE-AAC,2 - HE-AACv2。
///【特别说明】HE-AAC 和 HE-AACv2 支持的输出流音频采样率范围为[48000, 44100, 32000, 24000, 16000]
///【特别说明】当音频编码设置为 HE-AACv2 时,只支持输出流音频声道数为双声道。
///【特别说明】HE-AAC 和 HE-AACv2 取值仅在输出流为您额外设置的 streamId 上时才生效。
@property(nonatomic, assign) int audioCodec;
///【字段含义】指定云端混流中每一路视频画面的位置、大小、图层以及流类型等信息
///【推荐取值】该字段是一个 TRTCMixUser 类型的数组,数组中的每一个元素都用来代表每一路画面的信息。
@property(nonatomic, copy, nonnull) NSArray<TRTCMixUser *> *mixUsers;
... ... @@ -1220,7 +1261,7 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
/**
* 5.13 向非腾讯云 CDN 上发布音视频流时需设置的转推参数
* 5.14 向非腾讯云 CDN 上发布音视频流时需设置的转推参数
*
* TRTC 的后台服务支持通过标准 RTMP 协议,将其中的音视频流发布到第三方直播 CDN 服务商。
* 如果您使用腾讯云直播 CDN 服务,可无需关注此参数,直接使用 {@link startPublish} 接口即可。
... ... @@ -1240,10 +1281,14 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
///【特别说明】推流 URL 必须为 RTMP 格式,必须符合您的目标直播服务商的规范要求,否则目标服务商会拒绝来自 TRTC 后台服务的推流请求。
@property(nonatomic, strong, nonnull) NSString *url;
///【字段含义】需要转推的 streamId
///【推荐取值】默认值:空值。如果不填写,则默认转推调用者的旁路流。
@property(nonatomic, strong, nonnull) NSString *streamId;
@end
/**
* 5.14 本地音频文件的录制参数
* 5.15 本地音频文件的录制参数
*
* 该参数用于在音频录制接口 {@link startAudioRecording} 中指定录制参数。
*/
... ... @@ -1262,7 +1307,7 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
/**
* 5.15 本地媒体文件的录制参数
* 5.16 本地媒体文件的录制参数
*
* 该参数用于在本地媒体文件的录制接口 {@link startLocalRecording} 中指定录制相关参数。
* 接口 startLocalRecording 是接口 startAudioRecording 的能力加强版本,前者可以录制视频文件,后者只能录制音频文件。
... ... @@ -1284,12 +1329,12 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
/**
* 5.16 音效参数(已废弃)
* 5.17 音效参数(已废弃)
*
* TRTC 中的“音效”特指一些短暂的音频文件,通常仅有几秒钟的播放时间,比如“鼓掌声”、“欢笑声”等。
* 该参数用于在早期版本的音效播放接口 {@link TRTCCloud#playAudioEffect} 中指定音效文件(即短音频文件)的路径和播放次数等。
* 在 7.3 版本以后,音效接口已被新的接口 {@link TXAudioEffectManager#startPlayMusic} 所取代。
* 您在指定 startPlayMusic 的参数 {@link TXAudioMusicParam} 时,如果将 “isShortFile” 设置为 true,即为“音效”文件。
* 您在指定 startPlayMusic 的参数 {@link TXAudioMusicParam} 时,如果将 “isShortFile” 设置为 YES,即为“音效”文件。
*/
@interface TRTCAudioEffectParam : NSObject
... ... @@ -1319,7 +1364,7 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
/**
* 5.17 房间切换参数
* 5.18 房间切换参数
*
* 该参数用于切换房间接口{@link switchRoom},可以让用户从一个房间快速切换到另一个房间。
*/
... ... @@ -1347,7 +1392,7 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
/**
* 5.18 音频自定义回调的格式参数
* 5.19 音频自定义回调的格式参数
*
* 该参数用于在音频自定义回调相关的接口中,设置 SDK 回调出来的音频数据的相关格式(包括采样率、声道数等)。
*/
... ... @@ -1368,7 +1413,7 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
/**
* 5.20 屏幕分享的目标信息(仅适用于桌面系统)
* 5.21 屏幕分享的目标信息(仅适用于桌面系统)
*
* 在用户进行屏幕分享时,可以选择抓取整个桌面,也可以仅抓取某个程序的窗口。
* TRTCScreenCaptureSourceInfo 用于描述待分享目标的信息,包括 ID、名称、缩略图等,该结构体中的字段信息均是只读的。
... ... @@ -1397,4 +1442,24 @@ typedef NS_ENUM(NSUInteger, TRTCAudioRecordingContent) {
@end
#endif
/**
* 5.24 远端音频流智能并发播放策略的参数
*
* 该参数用于设置远端音频流智能并发播放策略。
*/
@interface TRTCAudioParallelParams : NSObject
///【字段含义】最大并发播放数。默认值:0
///如果 maxCount > 0,且实际人数 > maxCount,会实时智能选出 maxCount 路数据进行播放,这会极大的降低性能消耗。
///如果 maxCount = 0,SDK 不限制并发播放数,在上麦人数比较多的房间可能会引发性能问题。
@property(assign, nonatomic) UInt32 maxCount;
///【字段含义】指定用户必定能并发播放。
///【特殊说明】指定必定并发播放的用户 ID 列表。这些用户不参与智能选择。
/// includeUsers 的数量必须小于 maxCount,否则本次并发播放设置失效。
/// includeUsers 仅在 maxCount > 0 时有效。当 includeUsers 生效时,参与智能并发选择的最大播放数 = maxCount - 有效 includeUsers 的数量。
@property(nonatomic, strong, nullable) NSArray<NSString *> *includeUsers;
@end
/// @}
... ...
... ... @@ -165,40 +165,40 @@ NS_ASSUME_NONNULL_BEGIN
/**
* 3.3 某远端用户发布/取消了主路视频画面
*
* “主路画面”一般被用于承载摄像头画面。当您收到 onUserVideoAvailable(userId, true) 通知时,表示该路画面已经有可播放的视频帧到达。
* “主路画面”一般被用于承载摄像头画面。当您收到 onUserVideoAvailable(userId, YES) 通知时,表示该路画面已经有可播放的视频帧到达。
* 此时,您需要调用 {@link startRemoteView} 接口订阅该用户的远程画面,订阅成功后,您会继续收到该用户的首帧画面渲染回调 onFirstVideoFrame(userid)。
*
* 当您收到 onUserVideoAvailable(userId, false) 通知时,表示该路远程画面已经被关闭,关闭的原因可能是该用户调用了 {@link muteLocalVideo} 或 {@link stopLocalPreview}。
* 当您收到 onUserVideoAvailable(userId, NO) 通知时,表示该路远程画面已经被关闭,关闭的原因可能是该用户调用了 {@link muteLocalVideo} 或 {@link stopLocalPreview}。
*
* @param userId 远端用户的用户标识
* @param available 该用户是否发布(或取消发布)了主路视频画面,true: 发布;false:取消发布。
* @param available 该用户是否发布(或取消发布)了主路视频画面,YES: 发布;NO:取消发布。
*/
- (void)onUserVideoAvailable:(NSString *)userId available:(BOOL)available;
/**
* 3.4 某远端用户发布/取消了辅路视频画面
*
* “辅路画面”一般被用于承载屏幕分享的画面。当您收到 onUserSubStreamAvailable(userId, true) 通知时,表示该路画面已经有可播放的视频帧到达。
* “辅路画面”一般被用于承载屏幕分享的画面。当您收到 onUserSubStreamAvailable(userId, YES) 通知时,表示该路画面已经有可播放的视频帧到达。
* 此时,您需要调用 {@link startRemoteSubStreamView} 接口订阅该用户的远程画面,订阅成功后,您会继续收到该用户的首帧画面渲染回调 onFirstVideoFrame(userid)。
*
* @note 显示辅路画面使用的函数是 {@link startRemoteSubStreamView} 而非 {@link startRemoteView}。
*
* @param userId 远端用户的用户标识
* @param available 该用户是否发布(或取消发布)了辅路视频画面,true: 发布;false:取消发布。
* @param available 该用户是否发布(或取消发布)了辅路视频画面,YES: 发布;NO:取消发布。
*/
- (void)onUserSubStreamAvailable:(NSString *)userId available:(BOOL)available;
/**
* 3.5 某远端用户发布/取消了自己的音频
*
* 当您收到 onUserAudioAvailable(userId, true) 通知时,表示该用户发布了自己的声音,此时 SDK 的表现为:
* 当您收到 onUserAudioAvailable(userId, YES) 通知时,表示该用户发布了自己的声音,此时 SDK 的表现为:
* - 在自动订阅模式下,您无需做任何操作,SDK 会自动播放该用户的声音。
* - 在手动订阅模式下,您可以通过 {@link muteRemoteAudio}(userid, false) 来播放该用户的声音。
* - 在手动订阅模式下,您可以通过 {@link muteRemoteAudio}(userid, NO) 来播放该用户的声音。
*
* @note SDK 默认使用自动订阅模式,您可以通过 {@link setDefaultStreamRecvMode} 设置为手动订阅,但需要在您进入房间之前调用才生效。
*
* @param userId 远端用户的用户标识
* @param available 该用户是否发布(或取消发布)了自己的音频,true: 发布;false:取消发布。
* @param available 该用户是否发布(或取消发布)了自己的音频,YES: 发布;NO:取消发布。
*/
- (void)onUserAudioAvailable:(NSString *)userId available:(BOOL)available;
... ... @@ -297,6 +297,15 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (void)onStatistics:(TRTCStatistics *)statistics;
/**
* 4.3 网速测试的结果回调
*
* 该统计回调由 {@link startSpeedTest:} 触发。
*
* @param result 网速测试数据数据,包括丢包、往返延迟、上下行的带宽速率,详情请参考 {@link TRTCSpeedTestResult}。
*/
- (void)onSpeedTestResult:(TRTCSpeedTestResult *)result;
/// @}
/////////////////////////////////////////////////////////////////////////////////
//
... ... @@ -414,7 +423,7 @@ NS_ASSUME_NONNULL_BEGIN
* @note 您需要调用 {@link enableAudioVolumeEvaluation} 接口并设定(interval>0)开启次事件回调,设定(interval == 0)关闭此事件回调。
*
* @param volume 系统采集音量,取值范围 0 - 100,用户可以在系统的声音设置面板上进行拖拽调整。
* @param muted 麦克风是否被用户禁用了:true 被禁用,false 被启用。
* @param muted 麦克风是否被用户禁用了:YES 被禁用,NO 被启用。
*/
#if !TARGET_OS_IPHONE && TARGET_OS_MAC
- (void)onAudioDeviceCaptureVolumeChanged:(NSInteger)volume muted:(BOOL)muted;
... ... @@ -431,7 +440,7 @@ NS_ASSUME_NONNULL_BEGIN
* @note 您需要调用 {@link enableAudioVolumeEvaluation} 接口并设定(interval>0)开启次事件回调,设定(interval == 0)关闭此事件回调。
*
* @param volume 系统播放音量,取值范围 0 - 100,用户可以在系统的声音设置面板上进行拖拽调整。
* @param muted 系统是否被用户静音了:true 被静音,false 已恢复。
* @param muted 系统是否被用户静音了:YES 被静音,NO 已恢复。
*/
#if !TARGET_OS_IPHONE && TARGET_OS_MAC
- (void)onAudioDevicePlayoutVolumeChanged:(NSInteger)volume muted:(BOOL)muted;
... ... @@ -769,9 +778,9 @@ NS_ASSUME_NONNULL_BEGIN
@optional
/**
* 本地麦克风采集到的原始音频数据回调
* 本地采集并经过音频模块前处理后的音频数据回调
*
* 当您设置完音频数据自定义回调之后,SDK 内部会把刚从麦克风采集到的原始音频数据,以 PCM 格式的形式通过本接口回调给您。
* 当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理(ANS、AEC、AGC)之后的数据,以 PCM 格式的形式通过本接口回调给您。
* - 此接口回调出的音频时间帧长固定为0.02s,格式为 PCM 格式。
* - 由时间帧长转化为字节帧长的公式为【采样率 × 时间帧长 × 声道数 × 采样点位宽】。
* - 以 TRTC 默认的音频录制格式48000采样率、单声道、16采样点位宽为例,字节帧长为【48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节】。
... ... @@ -780,14 +789,14 @@ NS_ASSUME_NONNULL_BEGIN
* @note
* 1. 请不要在此回调函数中做任何耗时操作,由于 SDK 每隔 20ms 就要处理一帧音频数据,如果您的处理时间超过 20ms,就会导致声音异常。
* 2. 此接口回调出的音频数据是可读写的,也就是说您可以在回调函数中同步修改音频数据,但请保证处理耗时。
* 3. 此接口回调出的音频数据**不包含**背景音、音效、混响等前处理效果,延迟极低。
* 3. 此接口回调出的音频数据已经经过了前处理(ANS、AEC、AGC),但**不包含**背景音、音效、混响等前处理效果,延迟较低。
*/
- (void)onCapturedRawAudioFrame:(TRTCAudioFrame *)frame;
/**
* 本地采集并经过音频模块前处理后的音频数据回调
* 本地采集并经过音频模块前处理、音效处理和混 BGM 后的音频数据回调
*
* 当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理(ANS、AEC、AGC)之后的数据,以 PCM 格式的形式通过本接口回调给您。
* 当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理、音效处理和混 BGM 之后的数据,在最终进行网络编码之前,以 PCM 格式的形式通过本接口回调给您。
* - 此接口回调出的音频时间帧长固定为0.02s,格式为 PCM 格式。
* - 由时间帧长转化为字节帧长的公式为【采样率 × 时间帧长 × 声道数 × 采样点位宽】。
* - 以 TRTC 默认的音频录制格式48000采样率、单声道、16采样点位宽为例,字节帧长为【48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节】。
... ... @@ -801,7 +810,7 @@ NS_ASSUME_NONNULL_BEGIN
* @note
* 1. 请不要在此回调函数中做任何耗时操作,由于 SDK 每隔 20ms 就要处理一帧音频数据,如果您的处理时间超过 20ms,就会导致声音异常。
* 2. 此接口回调出的音频数据是可读写的,也就是说您可以在回调函数中同步修改音频数据,但请保证处理耗时。
* 3. 此接口回调出的数据已经经过了回声抑制(AEC)处理,但声音的延迟相比于 {@link onCapturedRawAudioFrame} 要高一些。
* 3. 此接口回调出的数据已经经过了前处理(ANS、AEC、AGC)、音效和混 BGM 处理,声音的延迟相比于 {@link onCapturedRawAudioFrame} 要高一些。
*/
- (void)onLocalProcessedAudioFrame:(TRTCAudioFrame *)frame;
... ...
... ... @@ -19,7 +19,7 @@
* 1.1 混响特效
*
* 混响特效可以作用于人声之上,通过声学算法对声音进行叠加处理,模拟出各种不同环境下的临场感受,目前支持如下几种混响效果:
* 0:关闭;1:KTV;2:小房间;3:大会堂;4:低沉;5:洪亮;6:金属声;7:磁性;8:空灵;9:录音棚;10:悠扬。
* 0:关闭;1:KTV;2:小房间;3:大会堂;4:低沉;5:洪亮;6:金属声;7:磁性;8:空灵;9:录音棚;10:悠扬;11:留声机;12:自然
*/
typedef NS_ENUM(NSInteger, TXVoiceReverbType) {
TXVoiceReverbType_0 = 0, ///< disable
... ... @@ -33,6 +33,8 @@ typedef NS_ENUM(NSInteger, TXVoiceReverbType) {
TXVoiceReverbType_8 = 8, ///< ethereal
TXVoiceReverbType_9 = 9, ///< studio
TXVoiceReverbType_10 = 10, ///< melodious
TXVoiceReverbType_11 = 11, ///< phonograph
TXVoiceReverbType_12 = 12, ///< nature
};
/**
... ... @@ -148,7 +150,7 @@ typedef void (^TXAudioMusicCompleteBlock)(NSInteger errCode);
* 同时也需要注意,并非所有的手机开启此特效后都能达到优秀的耳返效果,我们已经对部分耳返效果不佳的手机屏蔽了该特效。
*
* @note 仅在主播佩戴耳机时才能开启此特效,同时请您提示主播佩戴有线耳机。
* @param enable true:开启;false:关闭。
* @param enable YES:开启;NO:关闭。
*/
- (void)enableVoiceEarMonitor:(BOOL)enable;
... ...
... ... @@ -24,6 +24,8 @@
/**
* 系统音量类型(仅适用于移动设备)
*
* @deprecated v9.5 版本开始不推荐使用。
*
* 现代智能手机中一般都具备两套系统音量类型,即“通话音量”和“媒体音量”。
* - 通话音量:手机专门为接打电话所设计的音量类型,自带回声抵消(AEC)功能,并且支持通过蓝牙耳机上的麦克风进行拾音,缺点是音质比较一般。
* 当您通过手机侧面的音量按键下调手机音量时,如果无法将其调至零(也就是无法彻底静音),说明您的手机当前出于通话音量。
... ... @@ -35,17 +37,13 @@
#if TARGET_OS_IPHONE
typedef NS_ENUM(NSInteger, TXSystemVolumeType) {
///自动切换模式:
///也被称为“麦上通话,麦下媒体”,即主播上麦时使用通话音量,观众不上麦则使用媒体音量,适合在线直播场景。
///自动切换模式
TXSystemVolumeTypeAuto = 0,
///全程媒体音量:
///通话全程使用媒体音量,并不是非常常用的音量类型,适用于对音质要求比较苛刻的音乐场景中。
///如果您的用户大都使用外接设备(比如外接声卡)为主,可以使用该模式,否则请慎用。
///全程媒体音量
TXSystemVolumeTypeMedia = 1,
///全程通话音量:
///该方案的优势在于用户在上下麦时音频模块无需切换工作模式,可以做到无缝上下麦,适合于用户需要频繁上下麦的应用场景。
///全程通话音量
TXSystemVolumeTypeVOIP = 2,
};
... ... @@ -222,11 +220,6 @@ typedef NS_ENUM(NSInteger, TXMediaDeviceState) {
* 设置音频路由为扬声器时,声音比较大,不用将手机贴脸也能听清,因此可以实现“免提”的功能。
*/
- (NSInteger)setAudioRoute:(TXAudioRoute)route;
/**
* 1.10 设置系统音量类型(仅适用于移动端)
*/
- (NSInteger)setSystemVolumeType:(TXSystemVolumeType)type;
#endif
/// @}
... ... @@ -341,5 +334,23 @@ typedef NS_ENUM(NSInteger, TXMediaDeviceState) {
#endif
/// @}
/////////////////////////////////////////////////////////////////////////////////
//
// 弃用接口(建议使用对应的新接口)
//
/////////////////////////////////////////////////////////////////////////////////
/// @name 弃用接口(建议使用对应的新接口)
/// @{
/**
* 设置系统音量类型(仅适用于移动端)
*
* @deprecated v9.5 版本开始不推荐使用,建议使用 {@link TRTCCloud} 中的 startLocalAudio(quality) 接口替代之,通过 quality 参数来决策音质。
*/
#if TARGET_OS_IPHONE
- (NSInteger)setSystemVolumeType:(TXSystemVolumeType)type __attribute__((deprecated("use TRTCCloud#startLocalAudio:quality instead")));
#endif
/// @}
@end
/// @}
... ...
... ... @@ -328,6 +328,7 @@ typedef enum TXLiteAVWarning
WARNING_AUDIO_RECORDING_WRITE_FAIL = 7001, ///< 音频录制写入文件失败
WARNING_ROOM_DISCONNECT = 5101, ///< 网络断开连接
WARNING_IGNORE_UPSTREAM_FOR_AUDIENCE = 6001, ///< 当前是观众角色,忽略上行音视频数据
WARNING_MICROPHONE_HOWLING_DETECTED = 7002, ///< 录制音频时监测到啸叫。请调节两台客户端之间的距离或降低播放音量,检测到啸叫后,5s后会再次进行重新检测
// - Remove From Head
WARNING_NET_BUSY = 1101, ///< 网络状况不佳:上行带宽太小,上传数据受阻
... ...
... ... @@ -113,6 +113,13 @@ typedef NS_ENUM(NSInteger, TX_Enum_Type_LogLevel) {
+ (NSString *)getLicenceInfo;
/**
* @brief 设置外部扩展Dev ID
* @brief 采用键、值对的方式来进行数据传输
* @return 不合法的 ‘extKey’ 会返回 NO
*/
+ (BOOL)setExtDevID:(NSString *)extKey value:(NSString *)extValue;
/**
* @brief 设置 HEVC 外部解码器工厂实例
*/
+ (void)setExternalDecoderFactory:(id)decoderFactory;
... ...
... ... @@ -39,6 +39,9 @@ typedef NS_ENUM(NSInteger, V2TXLiveCode) {
/// 服务器无法处理您的请求
V2TXLIVE_ERROR_SERVER_PROCESS_FAILED = -7,
/// 连接断开
V2TXLIVE_ERROR_DISCONNECTED = -8,
/////////////////////////////////////////////////////////////////////////////////
//
// 网络相关的警告码
... ...
... ... @@ -265,7 +265,6 @@ typedef NS_ENUM(NSInteger, V2TXLiveBufferType) {
@end
/// @}
/////////////////////////////////////////////////////////////////////////////////
//
// (二)音频相关类型定义
... ... @@ -372,8 +371,8 @@ typedef NS_ENUM(NSInteger, V2TXLiveAudioQuality) {
@property(nonatomic, assign) NSUInteger audioBitrate;
@end
/// @}
/////////////////////////////////////////////////////////////////////////////////
//
// (四)连接状态相关枚举值定义
... ... @@ -400,63 +399,6 @@ typedef NS_ENUM(NSInteger, V2TXLivePushStatus) {
V2TXLivePushStatusReconnecting,
};
/// @}
/////////////////////////////////////////////////////////////////////////////////
//
// (五) 音视频状态有关的枚举值的定义
//
/////////////////////////////////////////////////////////////////////////////////
/// @name 音视频状态有关的枚举值的定义
/// @{
/**
* @brief 音视频状态
*/
typedef NS_ENUM(NSInteger, V2TXLivePlayStatus) {
/// 播放停止
V2TXLivePlayStatusStopped,
/// 正在播放
V2TXLivePlayStatusPlaying,
/// 正在缓冲(首次加载不会抛出 Loading 事件)
V2TXLivePlayStatusLoading,
};
/**
* @brief 音视频状态对应的原因
*/
typedef NS_ENUM(NSInteger, V2TXLiveStatusChangeReason) {
/// 内部原因
V2TXLiveStatusChangeReasonInternal,
/// 开始网络缓冲
V2TXLiveStatusChangeReasonBufferingBegin,
/// 结束网络缓冲
V2TXLiveStatusChangeReasonBufferingEnd,
/// 本地启动播放
V2TXLiveStatusChangeReasonLocalStarted,
/// 本地停止播放
V2TXLiveStatusChangeReasonLocalStopped,
/// 远端可播放
V2TXLiveStatusChangeReasonRemoteStarted,
/// 远端流停止或中断
V2TXLiveStatusChangeReasonRemoteStopped,
/// 远端流离线
V2TXLiveStatusChangeReasonRemoteOffline,
};
/// @}
/**
... ... @@ -580,7 +522,7 @@ typedef NS_ENUM(NSInteger, V2TXLiveMixInputType) {
/////////////////////////////////////////////////////////////////////////////////
//
// () 公共配置组件
// () 公共配置组件
//
/////////////////////////////////////////////////////////////////////////////////
/// @name 公共配置组件有关的枚举值的定义
... ... @@ -642,3 +584,4 @@ typedef NS_ENUM(NSInteger, V2TXLiveLogLevel) {
/// @}
/// @}
/// @}
... ...
... ... @@ -20,6 +20,12 @@
@protocol V2TXLivePlayer <NSObject>
/////////////////////////////////////////////////////////////////////////////////
//
// 播放器相关接口
//
/////////////////////////////////////////////////////////////////////////////////
/**
* 设置播放器回调。
*
... ... @@ -165,9 +171,9 @@
- (V2TXLiveCode)snapshot;
/**
* 设置视频自定义渲染回调。
* 开启/关闭对视频帧的监听回调。
*
* 通过该方法,可以获取解码后的每一帧视频画面,进行自定义渲染处理,添加自定义显示效果
* SDK 在您开启次此开关后将不再渲染视频画面,您可以通过 V2TXLivePlayerObserver 获得视频帧,并执行自定义的渲染逻辑
*
* @param enable 是否开启自定义渲染。【默认值】:NO
* @param pixelFormat 自定义渲染回调的视频像素格式 {@link V2TXLivePixelFormat}。
... ... @@ -176,12 +182,12 @@
* - V2TXLIVE_OK: 成功
* - V2TXLIVE_ERROR_NOT_SUPPORTED: 像素格式或者数据格式不支持
*/
- (V2TXLiveCode)enableCustomRendering:(BOOL)enable pixelFormat:(V2TXLivePixelFormat)pixelFormat bufferType:(V2TXLiveBufferType)bufferType;
- (V2TXLiveCode)enableObserveVideoFrame:(BOOL)enable pixelFormat:(V2TXLivePixelFormat)pixelFormat bufferType:(V2TXLiveBufferType)bufferType;
/**
* 开启接收 SEI 消息
*
* @param enable true: 开启接收 SEI 消息; false: 关闭接收 SEI 消息。【默认值】: false
* @param enable YES: 开启接收 SEI 消息; NO: 关闭接收 SEI 消息。【默认值】: NO
* @param payloadType 指定接收 SEI 消息的 payloadType,支持 5、242,请与发送端的 payloadType 保持一致。
*
* @return 返回值 {@link V2TXLiveCode}
... ...
... ... @@ -17,6 +17,12 @@
@optional
/////////////////////////////////////////////////////////////////////////////////
//
// 直播播放器事件回调
//
/////////////////////////////////////////////////////////////////////////////////
/**
* 直播播放器错误通知,播放器出现错误时,会回调该通知
*
... ... @@ -38,24 +44,55 @@
- (void)onWarning:(id<V2TXLivePlayer>)player code:(V2TXLiveCode)code message:(NSString *)msg extraInfo:(NSDictionary *)extraInfo;
/**
* 直播播放器视频状态变化通知
* 直播播放器分辨率变化通知
*
* @param player 回调该通知的播放器对象
* @param width 视频宽
* @param height 视频高
*/
- (void)onVideoResolutionChanged:(id<V2TXLivePlayer>)player width:(NSInteger)width height:(NSInteger)height;
/**
* 已经成功连接到服务器
*
* @param player 回调该通知的播放器对象
* @param extraInfo 扩展信息
*/
- (void)onConnected:(id<V2TXLivePlayer>)player extraInfo:(NSDictionary *)extraInfo;
/**
* 视频播放事件
*
* @param player 回调该通知的播放器对象
* @param firstPlay 第一次播放标志
* @param extraInfo 扩展信息
*/
- (void)onVideoPlaying:(id<V2TXLivePlayer>)player firstPlay:(BOOL)firstPlay extraInfo:(NSDictionary *)extraInfo;
/**
* 音频播放事件
*
* @param player 回调该通知的播放器对象
* @param firstPlay 第一次播放标志
* @param extraInfo 扩展信息
*/
- (void)onAudioPlaying:(id<V2TXLivePlayer>)player firstPlay:(BOOL)firstPlay extraInfo:(NSDictionary *)extraInfo;
/**
* 视频加载事件
*
* @param player 回调该通知的播放器对象
* @param status 状态码 {@link V2TXLivePlayStatus}
* @param reason 状态对应的原因 {@link V2TXLiveStatusChangeReason}
* @param extraInfo 扩展信息
*/
- (void)onVideoPlayStatusUpdate:(id<V2TXLivePlayer>)player status:(V2TXLivePlayStatus)status reason:(V2TXLiveStatusChangeReason)reason extraInfo:(NSDictionary *)extraInfo;
- (void)onVideoLoading:(id<V2TXLivePlayer>)player extraInfo:(NSDictionary *)extraInfo;
/**
* 直播播放器音频状态变化通知
* 音频加载事件
*
* @param player 回调该通知的播放器对象
* @param status 状态码 {@link V2TXLivePlayStatus}
* @param reason 状态对应的原因 {@link V2TXLiveStatusChangeReason}
* @param extraInfo 扩展信息
*/
- (void)onAudioPlayStatusUpdate:(id<V2TXLivePlayer>)player status:(V2TXLivePlayStatus)status reason:(V2TXLiveStatusChangeReason)reason extraInfo:(NSDictionary *)extraInfo;
- (void)onAudioLoading:(id<V2TXLivePlayer>)player extraInfo:(NSDictionary *)extraInfo;
/**
* 播放器音量大小回调
... ... @@ -88,7 +125,7 @@
*
* @param player 回调该通知的播放器对象
* @param videoFrame 视频帧数据 {@link V2TXLiveVideoFrame}
* @note 调用 [enableCustomRendering](@ref V2TXLivePlayer#enableCustomRendering:pixelFormat:bufferType:) 开启自定义渲染之后,会收到这个回调通知
* @note 需要您调用 [enableObserveVideoFrame](@ref V2TXLivePlayer#enableObserveVideoFrame:pixelFormat:bufferType:) 开启回调开关
*/
- (void)onRenderVideoFrame:(id<V2TXLivePlayer>)player frame:(V2TXLiveVideoFrame *)videoFrame;
... ...
... ... @@ -21,22 +21,22 @@ NS_ASSUME_NONNULL_BEGIN
@protocol V2TXLivePremier <NSObject>
/**
* 1. 获取 SDK 版本号
* 获取 SDK 版本号
*/
+ (NSString *)getSDKVersionStr;
/**
* 2. 设置 V2TXLivePremier 回调接口
* 设置 V2TXLivePremier 回调接口
*/
+ (void)setObserver:(id<V2TXLivePremierObserver>)observer;
/**
* 3. 设置 Log 的配置信息
* 设置 Log 的配置信息
*/
+ (V2TXLiveCode)setLogConfig:(V2TXLiveLogConfig *)config;
/**
* 4. 设置 SDK 接入环境
* 设置 SDK 接入环境
*
* @note 如您的应用无特殊需求,请不要调用此接口进行设置。
* @param env 目前支持 “default” 和 “GDPR” 两个参数
... ... @@ -46,7 +46,7 @@ NS_ASSUME_NONNULL_BEGIN
+ (V2TXLiveCode)setEnvironment:(const char *)env;
/**
* 5. 设置 SDK 的授权 License
* 设置 SDK 的授权 License
*
* 文档地址:https://cloud.tencent.com/document/product/454/34750
* @param url licence的地址
... ... @@ -57,7 +57,7 @@ NS_ASSUME_NONNULL_BEGIN
#endif
/**
* 6. 设置 SDK sock5 代理配置
* 设置 SDK sock5 代理配置
*
* @param host sock5 代理服务器的地址
* @param port sock5 代理服务器的端口
... ...
/**
* Module: TRTCCloud @ TXLiteAVSDK
* Function: 腾讯云 TRTC 主功能接口
* Version: 9.2.10637
* Version: 9.5.11230
*/
#ifndef __ITRTCCLOUD_H__
#define __ITRTCCLOUD_H__
... ... @@ -188,8 +188,8 @@ class ITRTCCloud
* 也就是说,您可以使用该接口让身处两个不同房间中的主播进行跨房间的音视频流分享,从而让每个房间中的观众都能观看到这两个主播的音视频。该功能可以用来实现主播之间的 PK 功能。
* 跨房通话的请求结果会通过 {@link TRTCCloudDelegate} 中的 onConnectOtherRoom() 回调通知给您。
* 例如:当房间“101”中的主播 A 通过 connectOtherRoom() 跟房间“102”中的主播 B 建立跨房通话后,
* - 房间“101”中的用户都会收到主播 B 的 onRemoteUserEnterRoom(B) 和 onUserVideoAvailable(B,YES) 这两个事件回调,即房间“101”中的用户都可以订阅主播 B 的音视频。
* - 房间“102”中的用户都会收到主播 A 的 onRemoteUserEnterRoom(A) 和 onUserVideoAvailable(A,YES) 这两个事件回调,即房间“102”中的用户都可以订阅主播 A 的音视频。
* - 房间“101”中的用户都会收到主播 B 的 onRemoteUserEnterRoom(B) 和 onUserVideoAvailable(B,true) 这两个事件回调,即房间“101”中的用户都可以订阅主播 B 的音视频。
* - 房间“102”中的用户都会收到主播 A 的 onRemoteUserEnterRoom(A) 和 onUserVideoAvailable(A,true) 这两个事件回调,即房间“102”中的用户都可以订阅主播 A 的音视频。
*
* <pre>
* 房间 101 房间 102
... ... @@ -250,8 +250,8 @@ class ITRTCCloud
*
* 在绝大多数场景下,用户进入房间后都会订阅房间中所有主播的音视频流,因此 TRTC 默认采用了自动订阅模式,以求得最佳的“秒开体验”。
* 如果您的应用场景中每个房间同时会有很多路音视频流在发布,而每个用户只想选择性地订阅其中的 1-2 路,则推荐使用“手动订阅”模式以节省流量费用。
* @param autoRecvAudio YES:自动订阅音频;NO:需手动调用 muteRemoteAudio(false) 订阅音频。默认值:YES。
* @param autoRecvVideo YES:自动订阅视频;NO:需手动调用 startRemoteView 订阅视频。默认值:YES。
* @param autoRecvAudio true:自动订阅音频;false:需手动调用 muteRemoteAudio(false) 订阅音频。默认值:true。
* @param autoRecvVideo true:自动订阅视频;false:需手动调用 startRemoteView 订阅视频。默认值:true。
* @note
* 1. 需要在进入房间(enterRoom)前调用该接口,设置才能生效。
* 2. 在自动订阅模式下,如果用户在进入房间后没有调用 {@startRemoteView} 订阅视频流,SDK 会自动停止订阅视频流,以便达到节省流量的目的。
... ... @@ -373,6 +373,7 @@ class ITRTCCloud
* </pre>
* @param config 如果 config 不为空,则开启云端混流,如果 config 为空则停止云端混流。详情请参考 {@link TRTCTranscodingConfig} 。
* @note 关于云端混流的注意事项:
* - 混流转码为收费功能,调用接口将产生云端混流转码费用,详见 https://cloud.tencent.com/document/product/647/49446 。
* - 调用该接口的用户,如果没设定 config 参数中的 streamId 字段,TRTC 会将房间中的多路画面混合到当前用户所对应的音视频流上,即 A + B => A。
* - 调用该接口的用户,如果设定了 config 参数中的 streamId 字段,TRTC 会将房间中的多路画面混合到您指定的 streamId 上,即 A + B => streamId。
* - 请注意,若您还在房间中且不再需要混流,请务必再次调用本接口并将 config 设置为空以进行取消,不及时取消混流可能会引起不必要的计费损失。
... ... @@ -395,7 +396,7 @@ class ITRTCCloud
* 在 enterRoom 之前调用此函数,SDK 只会开启摄像头,并一直等到您调用 enterRoom 之后才开始推流。
* 在 enterRoom 之后调用此函数,SDK 会开启摄像头并自动开始视频推流。
* 当开始渲染首帧摄像头画面时,您会收到 {@link TRTCCloudDelegate} 中的 onCameraDidReady 回调通知。
* @param frontCamera YES:前置摄像头;NO:后置摄像头。
* @param frontCamera true:前置摄像头;false:后置摄像头。
* @param view 承载视频画面的控件
* @note 如果希望开播前预览摄像头画面并通过 BeautyManager 调节美颜参数,您可以:
* - 方案一:在调用 enterRoom 之前调用 startLocalPreview
... ... @@ -749,6 +750,14 @@ class ITRTCCloud
virtual void stopLocalRecording() = 0;
#endif
/**
* 5.18 设置远端音频流智能并发播放策略
*
* 设置远端音频流智能并发播放策略,适用于上麦人数比较多的场景。
* @param params 音频并发参数,请参考 {@link TRTCAudioParallelParams}
*/
virtual void setRemoteAudioParallelParams(const TRTCAudioParallelParams& params) = 0;
/// @}
/////////////////////////////////////////////////////////////////////////////////
//
... ... @@ -944,7 +953,7 @@ class ITRTCCloud
#endif
/**
* 9.7 设置屏幕分享(即辅路)的视频编码参数(该接口仅支持桌面系统
* 9.7 设置屏幕分享(即辅路)的视频编码参数(桌面系统和移动系统均已支持
*
* 该接口可以设定远端用户所看到的屏幕分享(即辅路)的画面质量,同时也能决定云端录制出的视频文件中屏幕分享的画面质量。
* 请注意如下两个接口的差异:
... ... @@ -1317,7 +1326,7 @@ class ITRTCCloud
* 1. 发送消息到房间内所有用户(暂时不支持 Web/小程序端),每秒最多能发送30条消息。
* 2. 每个包最大为 1KB,超过则很有可能会被中间路由器或者服务器丢弃。
* 3. 每个客户端每秒最多能发送总计 8KB 数据。
* 4. 请将 reliable 和 ordered 同时设置为 true 或同时设置为 flase,暂不支持交叉设置。
* 4. 请将 reliable 和 ordered 同时设置为 true 或同时设置为 false,暂不支持交叉设置。
* 5. 强烈建议您将不同类型的消息设定为不同的 cmdID,这样可以在要求有序的情况下减小消息时延。
*/
virtual bool sendCustomCmdMsg(uint32_t cmdId, const uint8_t* data, uint32_t dataSize, bool reliable, bool ordered) = 0;
... ... @@ -1333,7 +1342,7 @@ class ITRTCCloud
* 房间中的其他用户可以通过 {@link TRTCCloudDelegate} 中的 onRecvSEIMsg 回调接收消息。
* @param data 待发送的数据,最大支持 1KB(1000字节)的数据大小
* @param repeatCount 发送数据次数
* @return YES:消息已通过限制,等待后续视频帧发送;NO:消息被限制发送
* @return true:消息已通过限制,等待后续视频帧发送;false:消息被限制发送
* @note 本接口有以下限制:
* 1. 数据在接口调用完后不会被即时发送出去,而是从下一帧视频帧开始带在视频帧中发送。
* 2. 发送消息到房间内所有用户,每秒最多能发送 30 条消息(与 sendCustomCmdMsg 共享限制)。
... ... @@ -1354,19 +1363,16 @@ class ITRTCCloud
/// @{
/**
* 12.1 开始进行网络测速(进入房间前使用)
* 12.1 开始进行网速测试(进入房间前使用)
*
* TRTC 由于涉及的是对传输时延要求很苛刻的实时音视频传输服务,因此对网络的稳定性要求会比较高。
* 很多用户在网络环境达不到 TRTC 的最低使用门槛时,直接进入房间可能会导致非常不好的用户体验。
* 推荐的做法是在用户进入房间前进行网络测速,当用户网络较差时通过 UI 交互提醒用户切换到更加稳定的网络(比如 WiFi 切换到 4G )后再进入房间。
* @param params 测速选项
* @return 接口调用结果,< 0:失败
* @note
* 1. 测速本身会消耗一定的流量,所以也会产生少量额外的流量费用。
* 2. 请在进入房间前进行测速,在房间中测速会影响正常的音视频传输效果,而且由于干扰过多,测速结果也不准确。
* @param sdkAppId 应用标识,请参考 {@link TRTCParams} 中的相关说明。
* @param userId 用户标识,请参考 {@link TRTCParams} 中的相关说明。
* @param userSig 用户签名,请参考 {@link TRTCParams} 中的相关说明。
* 1. 测速过程将产生少量的基础服务费用,详见 [计费概述 > 基础服务](https://cloud.tencent.com/document/product/647/17157#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1) 文档说明。
* 2. 请在进入房间前进行网速测试,在房间中网速测试会影响正常的音视频传输效果,而且由于干扰过多,网速测试结果也不准确。
* 3. 同一时间只允许一项网速测试任务运行。
*/
virtual void startSpeedTest(uint32_t sdkAppId, const char* userId, const char* userSig) = 0;
virtual int startSpeedTest(const TRTCSpeedTestParams& params) = 0;
/**
* 12.2 停止网络测速
... ... @@ -1490,6 +1496,17 @@ class ITRTCCloud
virtual void muteRemoteVideoStream(const char* userId, bool mute) = 0;
#endif
/**
* 开始进行网络测速(进入房间前使用)
*
* @deprecated v9.2 版本开始不推荐使用,建议使用 startSpeedTest(params) 接口替代之。
*/
#ifdef __APPLE__
virtual void startSpeedTest(uint32_t sdkAppId, const char* userId, const char* userSig) __attribute__((deprecated("use startSpeedTest:params instead"))) = 0;
#elif !defined(_WIN32)
virtual void startSpeedTest(uint32_t sdkAppId, const char* userId, const char* userSig) = 0;
#endif
#ifdef _WIN32
using IDeprecatedTRTCCloud::enableCustomVideoCapture;
using IDeprecatedTRTCCloud::muteLocalVideo;
... ... @@ -1499,6 +1516,7 @@ class ITRTCCloud
using IDeprecatedTRTCCloud::startLocalAudio;
using IDeprecatedTRTCCloud::startRemoteView;
using IDeprecatedTRTCCloud::startScreenCapture;
using IDeprecatedTRTCCloud::startSpeedTest;
using IDeprecatedTRTCCloud::stopRemoteView;
#endif
/// @}
... ...
... ... @@ -212,5 +212,5 @@ struct TRTCStatistics {
using namespace liteav;
#endif
#endif / *__TRTCSTATISTIC_H__* /
/// @}
#endif /* __TRTCSTATISTIC_H__ */
/// @
... ...
... ... @@ -26,7 +26,7 @@ class AudioMusicParam;
* 1.1 混响特效
*
* 混响特效可以作用于人声之上,通过声学算法对声音进行叠加处理,模拟出各种不同环境下的临场感受,目前支持如下几种混响效果:
* 0:关闭;1:KTV;2:小房间;3:大会堂;4:低沉;5:洪亮;6:金属声;7:磁性;8:空灵;9:录音棚;10:悠扬。
* 0:关闭;1:KTV;2:小房间;3:大会堂;4:低沉;5:洪亮;6:金属声;7:磁性;8:空灵;9:录音棚;10:悠扬;11:留声机;12:自然
*/
enum TXVoiceReverbType {
TXLiveVoiceReverbType_0 = 0, ///< disable
... ... @@ -40,6 +40,8 @@ enum TXVoiceReverbType {
TXLiveVoiceReverbType_8 = 8, ///< ethereal
TXLiveVoiceReverbType_9 = 9, ///< studio
TXLiveVoiceReverbType_10 = 10, ///< melodious
TXLiveVoiceReverbType_11 = 11, ///< phonograph
TXLiveVoiceReverbType_12 = 12, ///< nature
};
/// @}
... ... @@ -98,11 +100,11 @@ class AudioMusicParam {
int loopCount;
///【字段含义】是否将音乐传到远端 <br/>
///【推荐取值】YES:音乐在本地播放的同时,远端用户也能听到该音乐;NO:主播只能在本地听到该音乐,远端观众听不到。默认值:NO
///【推荐取值】true:音乐在本地播放的同时,远端用户也能听到该音乐;false:主播只能在本地听到该音乐,远端观众听不到。默认值:false
bool publish;
///【字段含义】播放的是否为短音乐文件 <br/>
///【推荐取值】YES:需要重复播放的短音乐文件;NO:正常的音乐文件。默认值:NO
///【推荐取值】true:需要重复播放的短音乐文件;false:正常的音乐文件。默认值:false
bool isShortFile;
///【字段含义】音乐开始播放时间点,单位:毫秒。
... ...
... ... @@ -29,6 +29,8 @@ class ITRTCVideoRenderCallback;
/**
* 系统音量类型(仅适用于移动设备)
*
* @deprecated v9.5 版本开始不推荐使用。
*
* 现代智能手机中一般都具备两套系统音量类型,即“通话音量”和“媒体音量”。
* - 通话音量:手机专门为接打电话所设计的音量类型,自带回声抵消(AEC)功能,并且支持通过蓝牙耳机上的麦克风进行拾音,缺点是音质比较一般。
* 当您通过手机侧面的音量按键下调手机音量时,如果无法将其调至零(也就是无法彻底静音),说明您的手机当前出于通话音量。
... ... @@ -39,17 +41,13 @@ class ITRTCVideoRenderCallback;
*/
enum TXSystemVolumeType {
///自动切换模式:
///也被称为“麦上通话,麦下媒体”,即主播上麦时使用通话音量,观众不上麦则使用媒体音量,适合在线直播场景。
///自动切换模式
TXSystemVolumeTypeAuto = 0,
///全程媒体音量:
///通话全程使用媒体音量,并不是非常常用的音量类型,适用于对音质要求比较苛刻的音乐场景中。
///如果您的用户大都使用外接设备(比如外接声卡)为主,可以使用该模式,否则请慎用。
///全程媒体音量
TXSystemVolumeTypeMedia = 1,
///全程通话音量:
///该方案的优势在于用户在上下麦时音频模块无需切换工作模式,可以做到无缝上下麦,适合于用户需要频繁上下麦的应用场景。
///全程通话音量
TXSystemVolumeTypeVOIP = 2,
};
... ... @@ -314,11 +312,6 @@ class ITXDeviceManager {
* 设置音频路由为扬声器时,声音比较大,不用将手机贴脸也能听清,因此可以实现“免提”的功能。
*/
virtual int setAudioRoute(TXAudioRoute route) = 0;
/**
* 1.10 设置系统音量类型(仅适用于移动端)
*/
virtual int setSystemVolumeType(TXSystemVolumeType type) = 0;
#endif
/// @}
... ... @@ -478,6 +471,24 @@ class ITXDeviceManager {
virtual void setDeviceObserver(ITXDeviceObserver* observer) = 0;
#endif
/// @}
/////////////////////////////////////////////////////////////////////////////////
//
// 弃用接口(建议使用对应的新接口)
//
/////////////////////////////////////////////////////////////////////////////////
/// @name 弃用接口(建议使用对应的新接口)
/// @{
/**
* 设置系统音量类型(仅适用于移动端)
*
* @deprecated v9.5 版本开始不推荐使用,建议使用 {@link TRTCCloud} 中的 startLocalAudio(quality) 接口替代之,通过 quality 参数来决策音质。
*/
#if __ANDROID__ || (__APPLE__ && TARGET_OS_IOS)
virtual int setSystemVolumeType(TXSystemVolumeType type) = 0;
#endif
/// @}
}; // End of class ITXDeviceManager
} // namespace liteav
... ... @@ -489,5 +500,5 @@ namespace trtc = liteav;
using namespace liteav;
#endif
#endif / *__ITXDEVICEMANAGER_H__* /
#endif /* __ITXDEVICEMANAGER_H__ */
/// @}
... ...
... ... @@ -316,6 +316,16 @@ class ITRTCCloudCallback {
virtual void onStatistics(const TRTCStatistics& statistics) {
}
/**
* 4.3 网速测试的结果回调
*
* 该统计回调由 {@link startSpeedTest:} 触发。
*
* @param result 网速测试数据数据,包括丢包、往返延迟、上下行的带宽速率,详情请参考 {@link TRTCSpeedTestResult}。
*/
virtual void onSpeedTestResult(const TRTCSpeedTestResult& result) {
}
/// @}
/////////////////////////////////////////////////////////////////////////////////
//
... ... @@ -356,18 +366,6 @@ class ITRTCCloudCallback {
virtual void onConnectionRecovery() {
}
/**
* 5.4 服务器测速的结果回调
*
* 当您调用 {@link startSpeedTest} 启动服务器测速后,SDK 多次抛出测速的结果回调。
* SDK 会对多台云端服务器的 IP 进行测速,每个 IP 对应的测速结果都会通过本回调接口通知给您。
* @param currentResult 当前完成的测速结果
* @param finishedCount 已完成测速的服务器数量
* @param totalCount 需要测速的服务器总数量
*/
virtual void onSpeedTest(const TRTCSpeedTestResult& currentResult, uint32_t finishedCount, uint32_t totalCount) {
}
/// @}
/////////////////////////////////////////////////////////////////////////////////
//
... ... @@ -800,6 +798,23 @@ class ITRTCCloudCallback {
}
#endif
/**
* 服务器测速的结果回调(已废弃)
*
* @deprecated 新版本开始不推荐使用,建议使用 {@link onSpeedTestResult:} 接口替代之。
*/
#ifdef _WIN32
virtual __declspec(deprecated("use onSpeedTestResult instead")) void onSpeedTest(const TRTCSpeedTestResult& currentResult, uint32_t finishedCount, uint32_t totalCount) {
}
#elif defined(__APPLE__)
virtual void onSpeedTest(const TRTCSpeedTestResult& currentResult, uint32_t finishedCount, uint32_t totalCount) {
}
__attribute__((deprecated("use onSpeedTestResult instead")));
#else
virtual void onSpeedTest(const TRTCSpeedTestResult& currentResult, uint32_t finishedCount, uint32_t totalCount) {
}
#endif
/// @}
}; // End of interface ITRTCCloudCallback
... ... @@ -883,9 +898,9 @@ class ITRTCAudioFrameCallback {
}
/**
* 本地麦克风采集到的原始音频数据回调
* 本地采集并经过音频模块前处理后的音频数据回调
*
* 当您设置完音频数据自定义回调之后,SDK 内部会把刚从麦克风采集到的原始音频数据,以 PCM 格式的形式通过本接口回调给您。
* 当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理(ANS、AEC、AGC)之后的数据,以 PCM 格式的形式通过本接口回调给您。
* - 此接口回调出的音频时间帧长固定为0.02s,格式为 PCM 格式。
* - 由时间帧长转化为字节帧长的公式为【采样率 × 时间帧长 × 声道数 × 采样点位宽】。
* - 以 TRTC 默认的音频录制格式48000采样率、单声道、16采样点位宽为例,字节帧长为【48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节】。
... ... @@ -894,14 +909,14 @@ class ITRTCAudioFrameCallback {
* @note
* 1. 请不要在此回调函数中做任何耗时操作,由于 SDK 每隔 20ms 就要处理一帧音频数据,如果您的处理时间超过 20ms,就会导致声音异常。
* 2. 此接口回调出的音频数据是可读写的,也就是说您可以在回调函数中同步修改音频数据,但请保证处理耗时。
* 3. 此接口回调出的音频数据**不包含**背景音、音效、混响等前处理效果,延迟极低。
* 3. 此接口回调出的音频数据已经经过了前处理(ANS、AEC、AGC),但**不包含**背景音、音效、混响等前处理效果,延迟较低。
*/
virtual void onCapturedRawAudioFrame(TRTCAudioFrame* frame){};
/**
* 本地采集并经过音频模块前处理后的音频数据回调
* 本地采集并经过音频模块前处理、音效处理和混 BGM 后的音频数据回调
*
* 当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理(ANS、AEC、AGC)之后的数据,以 PCM 格式的形式通过本接口回调给您。
* 当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理、音效处理和混 BGM 之后的数据,在最终进行网络编码之前,以 PCM 格式的形式通过本接口回调给您。
* - 此接口回调出的音频时间帧长固定为0.02s,格式为 PCM 格式。
* - 由时间帧长转化为字节帧长的公式为【采样率 × 时间帧长 × 声道数 × 采样点位宽】。
* - 以 TRTC 默认的音频录制格式48000采样率、单声道、16采样点位宽为例,字节帧长为【48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节】。
... ... @@ -915,7 +930,7 @@ class ITRTCAudioFrameCallback {
* @note
* 1. 请不要在此回调函数中做任何耗时操作,由于 SDK 每隔 20ms 就要处理一帧音频数据,如果您的处理时间超过 20ms,就会导致声音异常。
* 2. 此接口回调出的音频数据是可读写的,也就是说您可以在回调函数中同步修改音频数据,但请保证处理耗时。
* 3. 此接口回调出的数据已经经过了回声抑制(AEC)处理,但声音的延迟相比于 {@link onCapturedRawAudioFrame} 要高一些。
* 3. 此接口回调出的数据已经经过了前处理(ANS、AEC、AGC)、音效和混 BGM 处理,声音的延迟相比于 {@link onCapturedRawAudioFrame} 要高一些。
*/
virtual void onLocalProcessedAudioFrame(TRTCAudioFrame* frame){};
... ...
... ... @@ -947,33 +947,69 @@ struct TRTCVolumeInfo {
};
/**
* 5.7 网络测速结果
* 5.7 测速参数
*
* 您可以在用户进入房间前通过 {@link startSpeedTest} 接口进行测速(注意:请不要在通话中调用),
* 测速结果会每2 - 3秒钟返回一次,每次返回一个 IP 地址的测试结果。
* 您可以在用户进入房间前通过 {@link startSpeedTest} 接口测试网速(注意:请不要在通话中调用)。
*/
struct TRTCSpeedTestParams {
///应用标识,请参考 {@link TRTCParams} 中的相关说明。
int sdkAppId;
///用户标识,请参考 {@link TRTCParams} 中的相关说明。
const char *userId;
///用户签名,请参考 {@link TRTCParams} 中的相关说明。
const char *userSig;
///预期的上行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)。
int expectedUpBandwidth;
///预期的下行带宽(kbps,取值范围: 10 ~ 5000,为 0 时不测试)。
int expectedDownBandwidth;
TRTCSpeedTestParams() : sdkAppId(0), userId(nullptr), userSig(nullptr), expectedUpBandwidth(0), expectedDownBandwidth(0) {
}
};
/**
* 5.8 网络测速结果
*
* 您可以在用户进入房间前通过 {@link startSpeedTest:} 接口进行测速(注意:请不要在通话中调用)。
*/
struct TRTCSpeedTestResult {
///服务器 IP 地址
///测试是否成功。
bool success;
///带宽测试错误信息。
const char *errMsg;
///服务器 IP 地址。
const char *ip;
///内部通过评估算法测算出的网络质量,网络质量越好得分越高
///内部通过评估算法测算出的网络质量,更多信息请参见 {@link TRTCQuality}
TRTCQuality quality;
///上行丢包率,取值范围是 [0 - 1.0],例如 0.3 表示每向服务器发送10个数据包可能会在中途丢失3个。
///上行丢包率,取值范围是 [0 - 1.0],例如 0.3 表示每向服务器发送 10 个数据包可能会在中途丢失 3 个。
float upLostRate;
///下行丢包率,取值范围是 [0 - 1.0],例如 0.2 表示每从服务器收取10个数据包可能会在中途丢失2个。
///下行丢包率,取值范围是 [0 - 1.0],例如 0.2 表示每从服务器收取 10 个数据包可能会在中途丢失 2 个。
float downLostRate;
///延迟(毫秒),指当前设备到 TRTC 服务器的一次网络往返时间,该值越小越好,正常数值范围是10ms - 100ms。
int rtt;
TRTCSpeedTestResult() : ip(nullptr), quality(TRTCQuality_Unknown), upLostRate(0.0f), downLostRate(0.0f), rtt(0) {
///上行带宽(kbps,-1:无效值)。
int availableUpBandwidth;
///下行带宽(kbps,-1:无效值)。
int availableDownBandwidth;
TRTCSpeedTestResult() : success(false), errMsg(nullptr), ip(nullptr), quality(TRTCQuality_Unknown), upLostRate(0.0f), downLostRate(0.0f), rtt(0), availableUpBandwidth(0), availableDownBandwidth(0) {
}
};
/**
* 5.9 视频帧信息
* 5.10 视频帧信息
*
* TRTCVideoFrame 用来描述一帧视频画面的裸数据,也就是编码前或者解码后的视频画面数据。
*/
... ... @@ -1011,7 +1047,7 @@ struct TRTCVideoFrame {
};
/**
* 5.10 音频帧数据
* 5.11 音频帧数据
*/
struct TRTCAudioFrame {
///【字段含义】音频帧的格式
... ... @@ -1037,7 +1073,7 @@ struct TRTCAudioFrame {
};
/**
* 5.11 云端混流中各路画面的描述信息
* 5.12 云端混流中各路画面的描述信息
*
* TRTCMixUser 用于指定云端混流中每一路视频画面的位置、大小、图层以及流类型等信息。
*/
... ... @@ -1058,7 +1094,7 @@ struct TRTCMixUser {
TRTCVideoStreamType streamType;
///【字段含义】指定该路流是不是只混合声音
///【推荐取值】默认值:NO
///【推荐取值】默认值:false
///【特别说明】已废弃,推荐使用8.5版本开始新引入的字段:inputType。
bool pureAudio;
... ... @@ -1077,7 +1113,7 @@ struct TRTCMixUser {
};
/**
* 5.12 云端混流的排版布局和转码参数
* 5.13 云端混流的排版布局和转码参数
*
* 用于指定混流时各路画面的排版位置信息和云端转码的编码参数。
*/
... ... @@ -1137,6 +1173,13 @@ struct TRTCTranscodingConfig {
///【推荐取值】默认值:1,代表单声道。可设定的数值只有两个数字:1-单声道,2-双声道。
uint32_t audioChannels;
///【字段含义】指定云端转码的输出流音频编码类型
///【推荐取值】默认值:0,代表LC-AAC。可设定的数值只有三个数字:0 - LC-AAC,1 - HE-AAC,2 - HE-AACv2。
///【特别说明】HE-AAC 和 HE-AACv2 支持的输出流音频采样率范围为[48000, 44100, 32000, 24000, 16000]
///【特别说明】当音频编码设置为 HE-AACv2 时,只支持输出流音频声道数为双声道。
///【特别说明】HE-AAC 和 HE-AACv2 取值仅在输出流为您额外设置的 streamId 上时才生效。
uint32_t audioCodec;
///【字段含义】指定云端混流中每一路视频画面的位置、大小、图层以及流类型等信息
///【推荐取值】该字段是一个 TRTCMixUser 类型的数组,数组中的每一个元素都用来代表每一路画面的信息。
TRTCMixUser *mixUsersArray;
... ... @@ -1162,6 +1205,7 @@ struct TRTCTranscodingConfig {
audioSampleRate(48000),
audioBitrate(64),
audioChannels(1),
audioCodec(0),
mixUsersArray(nullptr),
mixUsersArraySize(0),
backgroundColor(0),
... ... @@ -1171,7 +1215,7 @@ struct TRTCTranscodingConfig {
};
/**
* 5.13 向非腾讯云 CDN 上发布音视频流时需设置的转推参数
* 5.14 向非腾讯云 CDN 上发布音视频流时需设置的转推参数
*
* TRTC 的后台服务支持通过标准 RTMP 协议,将其中的音视频流发布到第三方直播 CDN 服务商。
* 如果您使用腾讯云直播 CDN 服务,可无需关注此参数,直接使用 {@link startPublish} 接口即可。
... ... @@ -1190,12 +1234,16 @@ struct TRTCPublishCDNParam {
///【特别说明】推流 URL 必须为 RTMP 格式,必须符合您的目标直播服务商的规范要求,否则目标服务商会拒绝来自 TRTC 后台服务的推流请求。
const char *url;
TRTCPublishCDNParam() : url(nullptr), appId(0), bizId(0) {
///【字段含义】需要转推的 streamId
///【推荐取值】默认值:空值。如果不填写,则默认转推调用者的旁路流。
const char *streamId;
TRTCPublishCDNParam() : url(nullptr), streamId(nullptr), appId(0), bizId(0) {
}
};
/**
* 5.14 本地音频文件的录制参数
* 5.15 本地音频文件的录制参数
*
* 该参数用于在音频录制接口 {@link startAudioRecording} 中指定录制参数。
*/
... ... @@ -1215,7 +1263,7 @@ struct TRTCAudioRecordingParams {
};
/**
* 5.15 本地媒体文件的录制参数
* 5.16 本地媒体文件的录制参数
*
* 该参数用于在本地媒体文件的录制接口 {@link startLocalRecording} 中指定录制相关参数。
* 接口 startLocalRecording 是接口 startAudioRecording 的能力加强版本,前者可以录制视频文件,后者只能录制音频文件。
... ... @@ -1235,7 +1283,7 @@ struct TRTCLocalRecordingParams {
};
/**
* 5.16 音效参数(已废弃)
* 5.17 音效参数(已废弃)
*
* TRTC 中的“音效”特指一些短暂的音频文件,通常仅有几秒钟的播放时间,比如“鼓掌声”、“欢笑声”等。
* 该参数用于在早期版本的音效播放接口 {@link TRTCCloud#playAudioEffect} 中指定音效文件(即短音频文件)的路径和播放次数等。
... ... @@ -1255,7 +1303,7 @@ struct TRTCAudioEffectParam {
int loopCount;
///【字段含义】音效是否上行
///【推荐取值】YES:音效在本地播放的同时,会上行至云端,因此远端用户也能听到该音效;NO:音效不会上行至云端,因此只能在本地听到该音效。默认值:NO
///【推荐取值】true:音效在本地播放的同时,会上行至云端,因此远端用户也能听到该音效;false:音效不会上行至云端,因此只能在本地听到该音效。默认值:false
bool publish;
///【字段含义】音效音量
... ... @@ -1269,7 +1317,7 @@ struct TRTCAudioEffectParam {
};
/**
* 5.17 房间切换参数
* 5.18 房间切换参数
*
* 该参数用于切换房间接口{@link switchRoom},可以让用户从一个房间快速切换到另一个房间。
*/
... ... @@ -1298,7 +1346,7 @@ struct TRTCSwitchRoomConfig {
};
/**
* 5.18 音频自定义回调的格式参数
* 5.19 音频自定义回调的格式参数
*
* 该参数用于在音频自定义回调相关的接口中,设置 SDK 回调出来的音频数据的相关格式(包括采样率、声道数等)。
*/
... ... @@ -1320,7 +1368,7 @@ struct TRTCAudioFrameCallbackFormat {
};
/**
* 5.20 屏幕分享的目标信息(仅适用于桌面系统)
* 5.21 屏幕分享的目标信息(仅适用于桌面系统)
*
* 在用户进行屏幕分享时,可以选择抓取整个桌面,也可以仅抓取某个程序的窗口。
* TRTCScreenCaptureSourceInfo 用于描述待分享目标的信息,包括 ID、名称、缩略图等,该结构体中的字段信息均是只读的。
... ... @@ -1360,7 +1408,7 @@ struct TRTCScreenCaptureSourceInfo {
};
/**
* 5.21 可分享的屏幕和窗口的列表
* 5.22 可分享的屏幕和窗口的列表
*
* 此结构体的作用相当于 std::vector<TRTCScreenCaptureSourceInfo>,用于解决不同版本的 STL 容器的二进制兼容问题。
*/
... ... @@ -1385,7 +1433,7 @@ class ITRTCScreenCaptureSourceList {
};
/**
* 5.22 屏幕分享的进阶控制参数
* 5.23 屏幕分享的进阶控制参数
*
* 该参数用于屏幕分享相关的接口{@link selectScreenCaptureTarget},用于在指定分享目标时设定一系列进阶控制参数。
* 比如:是否采集鼠标、是否要采集子窗口、是否要在被分享目标周围绘制一个边框等。
... ... @@ -1416,6 +1464,28 @@ struct TRTCScreenCaptureProperty {
typedef ITXDeviceCollection ITRTCDeviceCollection;
typedef ITXDeviceInfo ITRTCDeviceInfo;
/**
* 5.24 远端音频流智能并发播放策略的参数
*
* 该参数用于设置远端音频流智能并发播放策略。
*/
struct TRTCAudioParallelParams {
///【字段含义】最大并发播放数。默认值:0
///如果 maxCount > 0,且实际人数 > maxCount,会实时智能选出 maxCount 路数据进行播放,这会极大的降低性能消耗。
///如果 maxCount = 0,SDK 不限制并发播放数,在上麦人数比较多的房间可能会引发性能问题。
uint32_t maxCount;
///【字段含义】指定用户必定能并发播放。
///【特殊说明】指定必定并发播放的用户 ID 列表。这些用户不参与智能选择。
/// includeUsers 的数量必须小于 maxCount,否则本次并发播放设置失效。
/// includeUsers 仅在 maxCount > 0 时有效。当 includeUsers 生效时,参与智能并发选择的最大播放数 = maxCount - 有效 includeUsers 的数量。
char **includeUsers;
uint32_t includeUsersCount;
TRTCAudioParallelParams() : maxCount(0), includeUsers(nullptr), includeUsersCount(0) {
}
};
/// @}
} // namespace liteav
... ... @@ -1426,5 +1496,5 @@ namespace trtc = liteav;
using namespace liteav;
#endif
#endif / *__TRTCCLOUDDEF_H__ * /
#endif /* __TRTCCLOUDDEF_H__ */
/// @}
... ...
... ... @@ -328,6 +328,7 @@ typedef enum TXLiteAVWarning
WARNING_AUDIO_RECORDING_WRITE_FAIL = 7001, ///< 音频录制写入文件失败
WARNING_ROOM_DISCONNECT = 5101, ///< 网络断开连接
WARNING_IGNORE_UPSTREAM_FOR_AUDIENCE = 6001, ///< 当前是观众角色,忽略上行音视频数据
WARNING_MICROPHONE_HOWLING_DETECTED = 7002, ///< 录制音频时监测到啸叫。请调节两台客户端之间的距离或降低播放音量,检测到啸叫后,5s后会再次进行重新检测
// - Remove From Head
WARNING_NET_BUSY = 1101, ///< 网络状况不佳:上行带宽太小,上传数据受阻
... ...
... ... @@ -3,5 +3,5 @@
<plist version="1.0">
<dict>
<key>HHBundleVersion</key>
<string>3.2.0.01261430</string></dict>
<string>3.4.0.02151124</string></dict>
</plist>
... ...
//
// HHFaceAuthBridge.h
// hhVDoctorSDK
//
// Created by 程言方 on 2022/2/8.
//
#import <Foundation/Foundation.h>
typedef void(^AuthFaceCallBack)(int code, NSString* _Nullable errorMsg);
typedef void(^AuthFaceInitBack)(BOOL success);
NS_ASSUME_NONNULL_BEGIN
@interface HHFaceAuthBridge : NSObject
+ (void)initWihtVC: (UIViewController*)vc callBack: (AuthFaceInitBack) callBack;
+ (void)startFaceWithVC:(UIViewController *)vc dict: (NSDictionary *)dict callBack: (AuthFaceCallBack) callBack;
+ (BOOL)canFaceAuth;
@end
NS_ASSUME_NONNULL_END
... ...
... ... @@ -11,6 +11,7 @@
#endif
#import "UITextView+Placeholder.h"
#import "HHFaceAuthBridge.h"
#import "HHMBProgressHUD.h"
#import "ObjectMapper.h"
#import "CGGeometry+RSKImageCropper.h"
... ...