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来支持该功能。特别是我们做音视频对延迟比较敏感的行业,可酌情参考。
热门推荐
羽毛结构与功能研究
《青云志》赏析:徐霞客真的写过这首诗吗?
正常人会自言自语吗
怎样才能减肚子?很多人都用错了方法
CRM如何与AI结合
买二手房如何用公积金贷款?全流程详解来了
《见一面少一面》简谱:金声声乐编配版
西安十大名酒:除了羊肉泡馍和凉皮,这些酒品外地难得一见
4分管的直径是多少厘米,如何选择水管
婴儿可以吃益生菌吗?专家建议:这样选择最安全
白银28年恶性大案告破:警方历时近30年终将凶手绳之以法
如何优化容器服务的资源分配
知乎App开发公司背景及发展历程
电动缸的脉冲信号定量化设置
社保卡的金融账户有什么功能
揭秘离子通道:细胞的隐形开关!
面试结束时的结束语怎样说更得体
棉花娃娃俏销,年轻人乐为情绪“买单”
茶树精油可以治疗真菌感染吗
被屏蔽的API如何使用:代理服务器、API镜像、前端绕过及替代方案详解
如何判断酒精已代谢完全
法院离婚调解协议可以自己写吗
软件定义网络如何提升企业网络管理效率
数据资产驱动的智能决策:提升企业决策效率与准确性中的关键作用
医院死亡证明开具时间及流程解析
百福同心贺新年,莫言和他的朋友们书法专场慈善拍卖,看看他们的作品
130-140斤女生怎么减肥快
DDR5 内存时序重要性解析:影响稳定性与性能的关键因素
国务院原副秘书长致年轻人:胜任机关工作的三个基本能力
Joker是什么意思?