Android音视频直播低延迟探究之:WLAN低延迟模式
创作时间:
作者:
@小白创作中心
Android音视频直播低延迟探究之:WLAN低延迟模式
引用
CSDN
1.
https://blog.csdn.net/renhui1112/article/details/143709701
Android WLAN低延迟模式是Android 10引入的一种功能,允许对延迟敏感的应用将Wi-Fi配置为低延迟模式,以减少网络延迟。该功能的启动条件包括:Wi-Fi已启用且设备可以访问互联网;应用已创建并获得Wi-Fi锁,并且正在前台运行;屏幕处于开启状态。
理论层面解读
各部分含义
- "WIFI_MODE_FULL":
- 通常表示全功能模式。在这种模式下,设备可能会启用所有可用的Wi-Fi功能和特性,以提供最佳的连接性能和体验。这可能包括较高的数据传输速率、支持多种协议和功能扩展等。
- "LOW_LATENCY":
- 表示低延迟。低延迟对于一些对实时性要求较高的应用非常重要,例如在线游戏、视频会议、实时流媒体等。在这种模式下,Wi-Fi连接会尽量减少数据传输的延迟时间,以确保快速响应和流畅的交互体验。
可能的应用场景
- 在线游戏
- 对于竞技类在线游戏,低延迟是至关重要的。玩家需要快速的响应时间来执行操作,否则可能会导致游戏体验不佳。启用WIFI_MODE_FULL_LOW_LATENCY模式可以减少网络延迟,提高游戏的流畅性和响应速度。
- 视频会议和直播
- 在视频会议和直播中,低延迟可以确保实时的音频和视频传输,避免出现卡顿和延迟现象。这种模式可以提供更稳定和流畅的通信体验,提高会议和直播的质量。
- 实时流媒体
- 对于观看实时体育赛事、音乐会等流媒体内容,低延迟可以减少缓冲时间,提供更即时的观看体验。
实现方式
- 硬件支持
- 设备的Wi-Fi芯片和天线需要支持低延迟功能。一些高端的Wi-Fi芯片可能会专门针对低延迟应用进行优化,提供更好的性能。
- 软件配置
- 操作系统和应用程序可以通过设置来启用低延迟模式。例如,在设备的网络设置中选择WIFI_MODE_FULL_LOW_LATENCY模式,或者在特定的应用程序中进行网络优化设置。
- 网络优化
- 可以通过优化网络环境来减少延迟。例如,使用更靠近设备的Wi-Fi接入点、减少网络拥塞、优化路由器设置等。
需要注意的是,具体的实现方式可能因设备和操作系统的不同而有所差异。在使用WIFI_MODE_FULL_LOW_LATENCY模式时,可能会对设备的电池寿命、功耗和其他性能方面产生一定的影响。此外,不是所有的设备和网络环境都支持这种模式,因此在使用前需要确保设备和网络的兼容性。
Android平台代码实现
为了验证Android平台WLAN低延迟模式,我们在大牛直播的RTSP|RTMP播放器模块,添加了如下的代码测试,下图展示的是我们Windows平台RTMP推流模块,采集屏幕数据,然后推RTMP到nginx服务,然后Android端从nginx获取RTMP流,同时播放4路的效果图(1920*1080分辨率),几无多大延迟,值得注意的是,实际上我们不开启这个选项,SDK也没多大延迟,所以是不是这块设置有效果,还要后面慢慢探究论证。
AndroidManifest.xml添加相关权限:
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
启动APP的时候,打开:
WifiManager wifiManager = (WifiManager) context_.getSystemService(Context.WIFI_SERVICE); //激活WIFI性能锁定
wifi_lock_ = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, TAG);
wifi_lock_.acquire();
PowerManager powerManager = (PowerManager) context_.getSystemService(Context.POWER_SERVICE); //激活CPU性能锁定
wake_lock_ = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
wake_lock_.acquire();
APP停止播放或业务关闭的时候,调用release接口释放:
if (wake_lock_ != null) {
wake_lock_.release();
wake_lock_ = null;
}
if (wifi_lock_ != null) {
wifi_lock_.release();
wifi_lock_ = null;
}
总结
Android WLAN低延迟模式为开发者提供了一种优化网络延迟的方式,但在使用时需要满足特定的条件,并且设备制造商也需要更新WLAN驱动程序和供应商HAL来支持该功能。特别是我们做音视频对延迟比较敏感的行业,可酌情参考。
热门推荐
春季养生“膏”招在此,这份膏方服用攻略请查收!
来自球状星团的逃逸之星:中等质量黑洞存在证据链的最后一环
抽血检验前,您需要了解的基本知识
调频调压原理深度解析:概念、应用与意义
蒸蛋中间为什么蒸不熟?三种常见原因及解决方案
真实的KK诈骗园区,是什么样的?为啥只骗中国人,不骗欧美人?
如何根据市场情况设定合理的投资期限?这种投资期限如何适应投资目标?
为什么国产车大家贬低奇瑞?——从品牌困境到市场认知的深度分析
现代名图方向盘按键图解,名图方向盘按钮功能说明
如何逆转熵增?从科学到科幻的全面解析
以花养人——丁香
“一剪难求”多元美发!京城“头等大事”是怎么解决的?
C++二叉树的先序、中序、后序遍历及构造方法详解

AI、ML在植物生物学和可持续农业发展中的进步与运用
精益生产在哪些行业的应用比较成功?
“千金难买老来瘦”?专家解读老年人体重管理新指南
焦虑症是每天都焦虑吗
体检抽了很多血有影响吗
手指发麻的9大原因及应对方法
CPU散热器选水冷还是风冷?深度剖析来啦
肺炎支原体肺炎治疗:阿奇霉素退居二线,首选哪种药?
高速铁路高清安防视频监控系统解决方案
武则天在唐朝的独特作用与影响
五指山最佳旅游时间与必去景点游玩推荐
女性快走的减肥方法怎么进行完美的运动
为啥北极熊不吃企鹅?北极为什么没有企鹅
北半球真的没有企鹅吗?
上海的气候特点及其对当地生活的影响
朗读技巧:如何提升你的阅读表现
《思考,快与慢》:重大决策,不要相信直觉