这可能是由于您忘记设置了混淆规则导致的。如果您是直接集成的 BRTC SDK,请参考一分钟集成 SDK设置混淆规则。如果您是百家云 SaaS SDK(如百家云直播 SDK)的用户,请参考Android 直播 Core SDK设置混淆规则。
BRTC Android SDK 从 3.6.0 开始删除了 armeabi 架构的 so 文件,只提供 armeabi-v7a 和 arm64-v8a 两种架构。因此,如果您的 build.gradle 中的 ndk - abiFilters 设置了 armeabi,可能就会出现这样的情况。建议您删掉 armeabi,保留 armeabi-v7a 即可。
目前版本的 SDK 只支持动态创建视频视图。您需要创建一个 BRTCAdaptCanvas,它继承于BRTCVideoView。然后通过getView()方法将获取到的视图(一个FrameLayout)添加到您需要显示的父视图容器中。
BRTCAdaptCanvas
BRTCVideoView
getView()
FrameLayout
BRTCEx 中的接口通常是出于某种特定场景下的应用而提供,并非通用性的。建议您在使用之前先了解其具体的使用背景要求。通常情况下,建议您优先使用 BRTC 中的接口。
您可以利用setLocalVideoProcessListener接口设置本地视频帧监听,然后在回调中对视频帧进行美颜处理。需要特别注意的是:(1)由于回调是在视频采集线程上回调的,请务必注意回调执行耗时,防止导致视频卡顿的产生。(2)请尽量不要在回调中再次调用 SDK 接口,防止多线程环境下产生无法预判的问题。(3)目前仅支持 NV21 格式的视频数据,其他格式的视频数据会被忽略或以异常形式通知。
setLocalVideoProcessListener
从 Android SDK 3.8.0 开始支持只设置一次本地视频帧回调监听对象,在实例销毁前都有效。低于这个版本的 SDK,必须在每次进房都要重新设置一次。
开发与集成
进入房间发生崩溃,日志打印“java.lang.ClassNotFoundException: Didn't find class......”
这可能是由于您忘记设置了混淆规则导致的。如果您是直接集成的 BRTC SDK,请参考一分钟集成 SDK设置混淆规则。如果您是百家云 SaaS SDK(如百家云直播 SDK)的用户,请参考Android 直播 Core SDK设置混淆规则。
集成 SDK 后的 Apk 在某些设备上无法安装,提示“安装失败”
BRTC Android SDK 从 3.6.0 开始删除了 armeabi 架构的 so 文件,只提供 armeabi-v7a 和 arm64-v8a 两种架构。因此,如果您的 build.gradle 中的 ndk - abiFilters 设置了 armeabi,可能就会出现这样的情况。建议您删掉 armeabi,保留 armeabi-v7a 即可。
是否支持在 layout.xml 中直接定义视频视图?
目前版本的 SDK 只支持动态创建视频视图。您需要创建一个
BRTCAdaptCanvas
,它继承于BRTCVideoView
。然后通过getView()
方法将获取到的视图(一个FrameLayout
)添加到您需要显示的父视图容器中。BRTC 和 BRTCEx 有什么区别?
BRTCEx 中的接口通常是出于某种特定场景下的应用而提供,并非通用性的。建议您在使用之前先了解其具体的使用背景要求。通常情况下,建议您优先使用 BRTC 中的接口。
我想接入第三方的美颜 SDK,如何实现?
您可以利用
setLocalVideoProcessListener
接口设置本地视频帧监听,然后在回调中对视频帧进行美颜处理。需要特别注意的是:(1)由于回调是在视频采集线程上回调的,请务必注意回调执行耗时,防止导致视频卡顿的产生。
(2)请尽量不要在回调中再次调用 SDK 接口,防止多线程环境下产生无法预判的问题。
(3)目前仅支持 NV21 格式的视频数据,其他格式的视频数据会被忽略或以异常形式通知。
setLocalVideoProcessListener 是否支持只调用一次,离开房间再进房继续使用?
从 Android SDK 3.8.0 开始支持只设置一次本地视频帧回调监听对象,在实例销毁前都有效。低于这个版本的 SDK,必须在每次进房都要重新设置一次。