媒体播放对耗电量的影响有多大?
避免不必要的耗电量是开发高性能 Android 应用的一个重要方面。媒体播放可能是耗电的主要原因,但其对特定应用的重要性在很大程度上取决于其使用模式。如果某个应用每天仅用于播放少量媒体内容,则相应的耗电量将仅为设备总耗电量的一小部分。在这种情况下,在选择要使用的玩家时,最好优先考虑特征集和可靠性,而不是电池优化。另一方面,如果某个应用经常用于每天播放大量媒体,那么在众多可行的选项之间做出选择时,应该更重视耗电量优化。
ExoPlayer 的节能效果如何?
Android 设备和媒体内容生态系统的多样性意味着很难对 ExoPlayer 的电池消耗做出广泛适用的说法。性能因硬件、Android 版本和播放的媒体而异。因此,以下信息仅供参考。
视频播放
对于视频播放,视频流的显示和解码占播放期间的大部分电量。
为输出选择 SurfaceView
或 TextureView
会对功耗产生重大影响。SurfaceView
更加节能,因为在某些设备上,TextureView
使视频播放期间的总功耗增加高达 30%。因此,应尽可能优先使用 SurfaceView
。如需详细了解如何在 SurfaceView
和 TextureView
之间进行选择,请点击此处。
音频回放
对于短时音频播放,或在屏幕开启时播放,音频对功耗没有太大影响。
如果要在屏幕关闭的情况下长时间播放,建议使用 ExoPlayer 的音频分流模式。通过音频分流可将音频处理从 CPU 分流到专用信号处理器。如需详细了解如何启用它,请参阅 track selection guide
。