FAQ - Arcloud/LiveRecorder-Android GitHub Wiki

1.推流失败时是否会自动重连?

SDK有自动重连开关,enableAutoConnect()接口,默认情况下此接口是关闭的,当开启后,SDK会自动重连3次,每次重连时间间隔500ms,如果3次都失败,则会抛错误到APP,APP收到socket错误后可以调用 forceReConnect()来尝试强制重连,其他错误则建议停止推流。

2.是否支持更多自定义分辨率?

目前支持的分辨率为SDK支持的固定几种分辨率: 1280x720, 960x540, 854x480, 800x450 ,720x480, 640x480, 640x360, 480*360, 480x320, 320x240,其他分辨率可能会引起预览花屏或者录制失真的异常。分辨率设置请参考推流编码分辨率码率对照表。

3.是否支持软件编码?

目前不支持软件编码,后续会增加该功能。

4.录制时是否可以切换分辨率或者更改横竖屏?

录制时候不支持切换分辨率、更改横竖屏,录制参数是静态设置好的,暂不支持动态改变。

5.推流如何支持秒开?

在播放器端调用setConfig接口来设置相关的时间,“MEDIAFILE.INITIAL_BUFFERTIME_ID”表示启动时间(需要秒开建议填0), “MEDIAFILE.PLAYINGTIME_ID” 表示播放过程的缓冲时间(建议1500),“MEDIAFILE.MAX_BUFFERTIME_ID”表示缓冲最大时间(超出将不再接收,建议5000),以上参数默认是5000(5秒)。

6.是否支持帧率/码率自适应?

暂时不支持码率/帧率自适应。

7.你们与第三方播放器的兼容性如何?

推流采用RTMP协议,第三方播放器只要支持这个协议就可以播放。

8. 麦克风初始化失败, 报音频不支持错误, 是什么原因?

  • 怀疑点1、麦克风没有开启权限。
    解决方法:进入设置->权限,开启麦克风权限。
  • 怀疑点2、assets目录下ArcPlugin.ini中的包名没有替换成自己项目的包名。
    解决方法:检查ArcPlugin.ini中的包名,替换成自己工程项目的包名,参考API文档第三章的集成说明。
  • 怀疑点3、Application文件下copyPlginIni函数中 strIniFile 路径不对。
    解决方法:检查strIniFile路径是否正确,正确为“/data/data/包名/files”。

9. 预览的时候出现马赛克, 或者画面被拉伸, 是什么原因?

  • 怀疑点1、预览花屏的问题可能是设置了不支持的分辨率。
    解决方法:检查设置的分辨率是否是SDK支持的分辨率,如果不是请选择SDK支持的分辨率进行设置。
  • 怀疑点2、预览拉伸的问题可能是setCameraDisplayMode设置的模式有问题,设置了全屏拉伸模式。
    解决方法:检查设置预览模式,请设置为FILL_IN或FILL_OUT模式,具体请参考集成说明或者sampleCode。

10. 开启美颜的时候, 发生预览卡住或闪退的现象 ,是什么原因?

怀疑点1、检查关闭美颜是否恢复预览,如果恢复预览则表示美颜库过期。
解决方法:美颜库过期请联系接口人,需要提供新版本的SDK。

11. 推流失败, 是什么原因?

  • 6.0系统以下:
    • 怀疑点1、推流参数设置错误。
      解决方法:检查setClipInfo、setAudioInfo、setVideoInfo这三个函数中参数设置是否正确,参数设置请参考API文档第三章的集成说明或sampleCode。
    • 怀疑点2、推流地址设置错误。
      解决方法:检查推流地址是否正确。
    • 怀疑点3、推流初始化失败,比如库没有加载成功等原因导致。
      解决方法:根据返回的错误码,回馈给技术支持进一步分析。
  • 6.0系统以上:
    • 怀疑点1、权限申请提示不弹出。
      解决方法:在APP层增加申请权限的代码,用于初始化权限。
    • 怀疑点2、assets目录下问题因为写权限没开,没有拷贝到相应的目录。
      解决方法:在权限申请成功的回调函数onActivityResult()拷贝ArcPlugin.ini文件到/data/data/包名/files目录下。

12. 推流过程中切换横竖屏, 出现花屏, 是什么原因?

怀疑点1、目前推流参数是推流之前就已经确定,不支持动态修改。
解决方法:如果用户需要切换横竖屏,请先停止推流,切换横竖屏完成后再重新推流。

13. 启动推流时报connect error错误, 是什么原因?

怀疑点1、网络异常,导致SDK抛错给上层。
解决方法:检查网络是否正常,此时需要停止推流;如果需要断线重连功能,用户可以做重新推流的操作。

14. 直播过程中虚拟Home键弹出时预览画面发生变形, 是什么原因?

怀疑点1、预览cameraSurfaceView控件外面嵌套了layout,导致获取屏幕宽高时候,获取的是外面layout的宽高,引起cameraSurfaceView宽高设置不准确
解决方法:cameraSurfaceView控件外面不用嵌套layout。

15. 直播流的实际码率/帧率为什么和我设置的不一样, 是什么原因?

部分手机帧率不支持设置,是系统默认动态帧率,所以导致帧率和设置进去的不一致。

16. targetSdkVersion 设置为多少合适?

targetSdkVersion这个属性是在程序运行时期起作用的,系统根据这个属性决定要不要以兼容模式运行这个程序。如果平台的API Level高于你的应用程序中的targetSdkVersion属性指定的值,系统会开启兼容行为来确保你的应用程序继续以期望的形式来运行。一般情况下,应该将这个属性的值设置为最新的API level 值,这样的话可以利用新版本系统上的新特性。eclipse在生成项目时,默认将该值设置为最高。

17. 怎么查看推流效果?

testbed中在推流地址输入框中填入推流地址,推流成功后,使用播放器播放拉流地址即可观看推流效果。

18. 主播创建连麦失败,是什么原因?

原因是请求失败或者与连麦服务器无法正常连接,请检查网络环境或者连麦服务器,如网络环境正常建议反馈问题给技术支持,提供客户Android的版本号,推流版本号,推拉流地址,以及主副播端的log。

19. 副播加入连麦失败,是什么原因?

原因是请求失败或者与连麦服务器无法正常连接,请检查网络环境或者连麦服务器,如网络环境正常建议反馈问题给技术支持,提供客户Android的版本号,推流版本号,推拉流地址,以及主副播端的log。

20. 正常开始连麦后,画面出现静止(包括卡顿后恢复),是什么原因?

一般是与连麦系统服务器出现问题或网络环境出现波动相关,建议联系技术支持,提供客户Android的版本号,推流版本号,推拉流地址,以及主副播端的log。

21. 副播加入或离开,其他成员没有变化,是什么原因?

原因是请求失败或者与连麦服务器无法正常连接,请检查网络环境或者连麦服务器,如网络环境正常建议反馈问题给技术支持,提供客户Android的版本号,推流版本号,推拉流地址,以及主副播端的log。

22. 连麦过程中,画面出现马赛克现象,是什么原因?

原因是网络环境出现波动,导致数据出现丢帧,建议反馈问题给技术支持,提供客户Android的版本号,推流版本号,推拉流地址,以及主副播端的log。

23. 添加自定义滤镜后,预览画面卡住了,是什么原因?

可能是因为新添加的自定义滤镜的program id与已经在用的某个program id重复了,该问题在android4.3-4.4设备上偶现,暂无解决办法,可以removePluginFilter之后重新创建自定义滤镜。