您可以通过 Android, iOS, C++ 的方法:setDefaultStreamRecvMode(false, false) 来关闭 SDK 默认订阅远端用户的音视频流的行为,以节省下行带宽。否则,SDK 在感知到远端用户发布了音视频流后,会自动拉取(但不会播放和渲染)远端用户发布的音视频流,目的是可以在需要播放和显示的时候,能够立刻作出反馈。
setDefaultStreamRecvMode(false, false)
BRTC 存在私有化部署方案,但不作为标准产品对外直接提供。如果您有私有化服务的需要,欢迎您联系我们的售前进行咨询。我们将为您提供现有合作案例介绍,私有化服务需求评估等一系列贴合您的使用场景的方案。
不可以。同一个房间同一个用户ID只能进入一次。如果使用相同用户ID重复进房,后进入的会踢掉前面同名的。
长度在 1 到 64 个字符之间的字符串,且该字符串只能包含小写字母、大写字母、数字、短横线和下划线。
角色分为主播和观众。以观众进房后,调用推流相关接口(如 MuteLocalAudio, MuteLocalVideo 等)是无效的。只有主播角色才可以推流。如果您确保在进房后只需要拉流,不需要推流,可以在进房参数中指定观众角色。当然,即便是以观众角色进房,也可以通过 SwitchRole 接口切换到主播角色,反之亦然。
房间的创建不需要单独执行,如果在调用 EnterRoom 接口进房时,服务器检测到不存在以此房间号命名的房间,会自动创建一个。
可以。您可以通过setNetworkQosParam方法来设置。以 Android SDK 举例,将 BRTCDef.BRTCNetworkQosParam 的 BRTCVideoQosPreference 参数设置为 BRTCVideoQosPreferenceClear 即可。在最新的 SDK 版本上,您甚至可以为摄像头和屏幕共享设置不同的网络调整策略。
setNetworkQosParam
BRTCDef.BRTCNetworkQosParam
BRTCVideoQosPreference
BRTCVideoQosPreferenceClear
Windows 3.6.0 及以上,Android、iOS 3.8.0 及以上版本支持直接将设备上的视频文件(mp4)作为实时媒体流推流到房间内。
SDK 支持用户断线情况下自动重连,其中包括信令的重连媒体重连两种情况。其中,信令重连逻辑如下:
OnConnectionLost
OnTryToReconnect
OnConnectionRecovery
媒体流的重连则没有给用户回调通知,SDK 内部会按照 3 秒间隔无限次重试,直到成功。
通过回调(或代理)onStatistics您可以获取 SDK 实时运行数据,包括每一条推拉流的详细信息。您可以通过这些数据来评价当前的质量。例如通过丢包率的高低可以反馈当前网络好坏。另外,从 Windows 3.6.0,Android、iOS 3.8.0 及同期其他端 SDK 版本开始,新增OnNetworkQuality回调,为您提供了一个简单的枚举值来辅助评价当前网络质量好坏。从准确度上来讲,更推荐您使用onStatistics。
onStatistics
OnNetworkQuality
支持。建议您升级到最新版本的 SDK。
通用性问题
功能相关
是否支持不自动订阅音视频流?
您可以通过 Android, iOS, C++ 的方法:
setDefaultStreamRecvMode(false, false)
来关闭 SDK 默认订阅远端用户的音视频流的行为,以节省下行带宽。否则,SDK 在感知到远端用户发布了音视频流后,会自动拉取(但不会播放和渲染)远端用户发布的音视频流,目的是可以在需要播放和显示的时候,能够立刻作出反馈。是否支持私有化部署?
BRTC 存在私有化部署方案,但不作为标准产品对外直接提供。如果您有私有化服务的需要,欢迎您联系我们的售前进行咨询。我们将为您提供现有合作案例介绍,私有化服务需求评估等一系列贴合您的使用场景的方案。
同一个 UserId 是否可以重复加入房间?
不可以。同一个房间同一个用户ID只能进入一次。如果使用相同用户ID重复进房,后进入的会踢掉前面同名的。
用户名和房间号的取值范围是什么?
长度在 1 到 64 个字符之间的字符串,且该字符串只能包含小写字母、大写字母、数字、短横线和下划线。
支持什么角色?
角色分为主播和观众。以观众进房后,调用推流相关接口(如 MuteLocalAudio, MuteLocalVideo 等)是无效的。只有主播角色才可以推流。如果您确保在进房后只需要拉流,不需要推流,可以在进房参数中指定观众角色。当然,即便是以观众角色进房,也可以通过 SwitchRole 接口切换到主播角色,反之亦然。
如何创建房间?
房间的创建不需要单独执行,如果在调用 EnterRoom 接口进房时,服务器检测到不存在以此房间号命名的房间,会自动创建一个。
在上行网络不好的情况下,是否可以保持编码的视频分辨率不变,只降低帧率?
可以。您可以通过
setNetworkQosParam
方法来设置。以 Android SDK 举例,将BRTCDef.BRTCNetworkQosParam
的BRTCVideoQosPreference
参数设置为BRTCVideoQosPreferenceClear
即可。在最新的 SDK 版本上,您甚至可以为摄像头和屏幕共享设置不同的网络调整策略。是否支持分享视频文件?
Windows 3.6.0 及以上,Android、iOS 3.8.0 及以上版本支持直接将设备上的视频文件(mp4)作为实时媒体流推流到房间内。
是否支持断线重连?
SDK 支持用户断线情况下自动重连,其中包括信令的重连媒体重连两种情况。其中,信令重连逻辑如下:
OnConnectionLost
事件OnTryToReconnect
事件。每次重连间隔 5 秒,如果没有连上则会再次回调通知OnTryToReconnect
事件。OnConnectionRecovery
事件媒体流的重连则没有给用户回调通知,SDK 内部会按照 3 秒间隔无限次重试,直到成功。
如何实时评价当前推拉流质量?
通过回调(或代理)
onStatistics
您可以获取 SDK 实时运行数据,包括每一条推拉流的详细信息。您可以通过这些数据来评价当前的质量。例如通过丢包率的高低可以反馈当前网络好坏。另外,从 Windows 3.6.0,Android、iOS 3.8.0 及同期其他端 SDK 版本开始,新增OnNetworkQuality
回调,为您提供了一个简单的枚举值来辅助评价当前网络质量好坏。从准确度上来讲,更推荐您使用onStatistics
。BRTC SDK 支持 IPv6 吗?
支持。建议您升级到最新版本的 SDK。