本篇文章给大家谈谈Android设备音视频兼容性解决方案详解,以及对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
为了在RTC场景下Android设备实现高可靠性、稳定性、低延迟和设备通用性,音视频兼容性适配至关重要。 Android设备相关参数的精细化配置和智能配置是本文的重点。
如何精细化配置
主流的SOC(System On Chip)解决方案都是基于Linux/Android系统开发的,但是每个公司都有自己的优势。高通SOC主要应用于手机设备,具有较强的编解码性能和稳定性,对视频过编问题控制较好; MTK和MStar合并后,除了手机产品外,广泛应用于机顶盒和大屏产品,并且往往可以通过MTK自身的参数来启用一些功能。另外,不同的芯片版本具有不同的计算性能,这会影响音视频功能的开启,例如视频预处理和后处理。目前主流的芯片方案如下:
基于以上不同的SOC平台,各个设备厂商会定制不同的Android智能设备,每类设备的功能特点也不同。
例如:
安卓手机:手机的电池消耗要求比较严格,设备需要满足360旋转体验; Android TV大屏设备:部分使用外接摄像头;在声音采集场景中,人与设备之间的距离往往比较远,采集高质量的音频数据具有挑战性; Android Watch:设备屏幕比较小、CPU性能比较弱等;手机设备是最常见的设备,也是用户使用率非常高的设备。大多数手机厂商都定制了Android系统,因此各家都有自己的ROM。手机厂商通常会对Android的Framework、HAL和Linux驱动进行定制化修改,导致不同手机即使使用相同的SOC,其性能也存在差异。主流Android手机品牌及定制ROM如下图:
因此,根据上面的分析,存在如此多的设备兼容性问题。对于以音视频为主要场景的产品,音视频模块都需要精细化的兼容性适配。可以参考的主要配置参数可以包括(目前尚未全部启用和配置)以下功能模块:
音频:基本功能、音效、音频策略等。 视频:基本功能、视频前后处理等。详细参数如下:
如何智能化配置
音视频兼容配置,参数需要可更改、及时、灵活、自动化、可逆。目前Android参数传递配置方案可以分为以下四种:
下面,我们将详细讨论这四点,并分析它们的优缺点。
兼容性代码 BuiltIn
兼容性解决方案是直接在代码逻辑中处理。该方案只能覆盖部分场景,比如针对不同Android SDK版本的兼容性适配以及已经测试过的非常清晰的配置。
优点:直接写在SDK中,不需要从服务器下载,不占用网络带宽,高效。缺点:但对于线上出现问题的特殊机型,设置往往不够灵活。当不同用户上网出现很多问题时,需要更换SDK来解决问题。这常常让人感觉水不能解近人的干渴。
本地文件配置
本地文件配置方法为:读取本地指定目录下的配置文件,使参数生效。此步骤通常在SDK初始化时执行。
好处:不需要重新打包SDK。您可以直接将配置文件放在指定目录下,使参数生效。无需去服务器修改下发参数即可生效。更适合局部调参场景。缺点:但是无法解决在线客户远程修改问题。
服务器参数下发
服务器下发参数设置,您可以随时通过下发参数来控制设备相关的功能参数。
好处:当在线用户遇到兼容性问题时,可以直接通过服务器发出参数修改,可以在几分钟内解决用户问题。缺点:通过服务器投递需要服务器资源。如果传递的参数文件过大,会影响SDK初始化时间。
自动化策略选择
参数的自动策略选择是综合考虑不同系统版本、不同CPU计算能力、芯片平台等因素,将不同功能模块的参数进行组合,形成多套参数模板,如参数具有低性能要求的模板,或者质量优先的参数模板。当参数设置不当导致出现问题时,有比较完善的回退机制,可以回退到基本参数配置,保证基本功能能够工作。
兼容性适配的规则
以上两章介绍了精细化配置和智能配置方案的常用参数。那么如何区分不同的设备型号、不同的业务场景、不同的系统版本呢?
下面,我们详细介绍一下制定兼容性适配规则的几个维度。
根据单个设备适配
手机厂商基于新的Android系统进行定制时,很难做到完全一致。这种差异在音视频领域更为严重。每个设备的唯一性可以根据设备的硬件制造商、主板、设备版本和设备参数来识别。
根据设备 CPU 适配
是根据CPU的计算能力进行适配的,通常是为了适应一些对计算性能要求比较高的功能,比如视频的前处理和后处理。选择该方式适配后,所有相同CPU型号的设备均可适配。
根据系统版本适配
每次Android系统更新都会涉及到相应音视频API的相关功能变更。需要根据Android系统版本号进行相应的适配。
根据不同应用业务适配
不同的业务对音视频适配的侧重点不同。比如多人会议场景,对音视频的实时性和弱网络下的稳定性要求比较高,对音频降噪、消除回声的要求比较高;在云游戏场景中,对视频分辨率和延迟的要求较高。高的;娱乐业务中的音乐播放,如云音乐的同听功能,对音质要求比较高,对音频设备路由策略有特殊要求,如从蓝牙播放音乐,但从手机采集音频数据手机麦克风;这些场景必须通过不同的参数适配来满足要求。
根据 IOT 设备类型适配
Android系统应用于各种IOT设备中,产生了大量的适配场景。比如大屏电视,由于屏幕比较大,需要高分辨率、高帧率的视频内容,这就需要更高的采集和编解码能力;而且市场上有一些电视可以360度旋转,需要高分辨率和高帧率。调整显示角度;在大屏音质方面,由于人们经常距离电视较远,声音采集和回声消除的处理与手机有所不同。
兼容性适配常见的音视频问题
说说常见的音视频兼容性适配问题、产生原因以及解决方法。
音频兼容性常见问题
音频兼容性通常会导致音质、音量和音频策略出现问题。下面我们选取其中的几个,简单分析一下此类问题的解决方案。
遇到问题:音频延迟过大或者延迟不稳定
解决方案:创建Android自采集时,AudioRecord中设置的Buffer大小影响采集结束延迟,从而影响AEC算法的准确性。遇到问题:蓝牙A2DP模式下,从蓝牙播放,但无法从设备麦克风采集
解决方案:区分蓝牙SCO/A2DP模式下AudioSource和AudioMode的类型。遇到问题:发送端音量低。
方案一:采集到的音频数据源音量较低,通过软件AGC算法增强音量;解决方案2:修改AudioSource。部分手机,尤其是老手机,AudioSource.VOICE_COMMUNICATION模式声音小或者音频通道处理有问题;遇到的问题:音频播放质量低
解决方案:AudioTrack的streamType使用AudioSystem.STREAM_MUSIC;遇到的问题:音频3A相关参数(AEC AGC、ANS);现象是声音时大时小,人声被抑制,背景噪音严重,音量过高或过低。解决方案:通常是硬件3A和软件算法3A的补充。使用OpenSL ES时也存在调用系统API冻结、无法播放等问题。我们也探索了相应的解决方案,这里不再赘述。
视频兼容性常见问题
视频兼容性经常会导致冻结、显示异常、编解码器故障等问题。下面我们选取其中的几个来简单分析一下此类问题的解决方案。
遇到问题:采集画面有红色条纹:解决方案:特定分辨率和帧率导致采集画面出现红色条纹
遇到问题:采集图像是黑色的:
解决方案:特定帧率,导致曝光问题。
遇到问题:采集画面偶尔出现碎片
解决办法:纹理获取格式原因导致
遇到问题:部分手机Camera2拍摄时出现绿边
解决方案:Camera2不兼容,遇到问题:硬件编码的实际码率与编码码率相差很大。
解决方案:即使有些手机的Mediacodec设置为CBR,码率仍然波动较大。遇到的问题:硬件编码的比特流有黑边和绿边:
解决方案:输入数据的长宽没有按照stride对齐,编码器无法兼容。遇到的问题:无法创建硬件解码器:
解决方案一:给解码器设置的格式错误,比如颜色空间、编码器名称、是否渲染到表面等;解决方案二:超过SOC支持的最大解码器数量;还有一些系统API冻结的调用,针对MTK芯片的特殊问题,比如采集帧率不稳定、解码失败等,我们也探索了相应的解决方案,这里不再赘述。
屏幕共享兼容性常见问题
屏幕共享是一种特殊类型的视频采集,也存在一些与设备相关的问题。常见问题包括屏幕冻结和收集的数据出现黑边。下面我们简单分析一下此类问题的解决方案。
遇到问题:当手机屏幕静止时,采集帧率为0
解决办法:缓存一帧数据,定时发送。遇到的问题:收集的数据出现黑边。
解决办法:设置的分辨率与屏幕分辨率不匹配,系统会用黑色数据填充。更改采集分辨率。
结尾
网易云信息音视频SDK致力于为每一位用户提供高清、稳定、易用、低延迟的服务。通过本文的介绍,网易云信托拥有非常完善的兼容性适配方案,弥补了安卓碎片化带来的用户体验上的短板。同时也积累了大量的兼容性适配经验,满足不同的使用。不同的场景、不同的设备类型和型号导致的各种奇怪的问题。
每一件设备的适配都是工匠的工作;
关于本次Android设备音视频兼容性解决方案详解和的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。
【Android设备音视频兼容性解决方案详解】相关文章:
用户评论
我经常遇到手机看片的时候音频和画面不同步的问题,真是太烦了!
有7位网友表示赞同!
这篇文章感觉很有用啊,希望能够解决一些常见的兼容性问题。
有12位网友表示赞同!
不同品牌的安卓机型有时候真的不太兼容,有些视频直接就无法播放,太别扭了!
有17位网友表示赞同!
我一直觉得安卓系统对于音视频兼容性适配做得还可以,但肯定还有改进的空间。
有13位网友表示赞同!
希望能了解更多关于最新版本的安卓对音视频的兼容情况。
有19位网友表示赞同!
希望这篇文章能给出一些实用的解决方法,比如哪些第三方播放器比较好用!
有17位网友表示赞同!
我听说有些应用开发商会故意只支持部分安卓系统,这样用户真的很难受啊!
有9位网友表示赞同!
有时候手机看视频卡顿很严重,不知道是不是音视频兼容性问题?
有18位网友表示赞同!
学习一下这方面的知识或许可以自己解决一些手机遇到的麻烦!
有18位网友表示赞同!
以前我的安卓手机经常会出现闪屏的情况,感觉是音视频渲染的问题。
有16位网友表示赞同!
期待新技术能够更好地提高安卓设备的音视频体验!
有9位网友表示赞同!
希望安卓系统能够像 iOS 一样对音视频兼容性做到更完善!
有12位网友表示赞同!
不同地区的用户使用的版本可能也不一样,这也会导致兼容性问题吗?
有6位网友表示赞同!
看来需要多关注一下应用商店里的评论,选择一些对安卓设备兼容性好的软件!
有15位网友表示赞同!
我还想要了解哪些手机品牌比较好用?它们音视频的表现怎么样?
有19位网友表示赞同!
解决音视频兼容性问题对于提升安卓手机的用户体验非常重要!
有19位网友表示赞同!
希望这些知识能够帮助更多安卓用户解决实际遇到的问题!
有6位网友表示赞同!
感觉这个话题很专业,需要多学习才能真正理解。
有11位网友表示赞同!
现在手机上玩游戏的要求越来越高了,音视频兼容性更要引起重视!
有15位网友表示赞同!
未来安卓系统的发展方向会更加注重音视频体验吗?
有5位网友表示赞同!