媒体播放导致的耗电量有多重要?
避免不必要的电池消耗是开发高性能 Android 应用的一个重要方面。媒体播放可能是电池耗尽的主要原因,但其对特定应用的重要性很大程度上取决于其使用模式。
如果应用每天仅用于播放少量媒体,则相应的耗电量仅占设备总耗电量的一小部分。在这种情况下,选择要使用的播放器时,优先考虑功能集和可靠性,而不是针对电池进行优化,这样做是合理的。另一方面,如果应用经常用于每天播放大量媒体内容,那么在选择多种可行选项时,应更侧重于优化电池消耗。
ExoPlayer 的能效如何?
Android 设备和媒体内容多种多样,因此很难对 ExoPlayer 的电池消耗情况做出广泛适用的声明。性能因硬件、Android 版本和播放的媒体而异。因此,以下信息仅供参考。
视频播放
对于视频播放,视频流的显示和解码会消耗播放期间的大部分电量。
在 SurfaceView 和 TextureView 之间选择输出可能会对功耗产生重大影响。SurfaceView 的能效更高,在某些设备上,TextureView 会使视频播放期间的总功耗增加多达 30%。因此,应尽可能优先使用 SurfaceView。在 Surface 页面上详细了解如何在 SurfaceView 和 TextureView 之间进行选择。
在某些电视上,如果常规播放路径无法提供足够流畅的播放体验,使用视频隧道可能会为高分辨率视频播放提供更高效的路径。
音频播放
对于短音频播放或屏幕开启时的播放,音频对功耗没有显著影响。
对于屏幕关闭时的长时间播放,可以通过使用 ExoPlayer 的音频分流模式来节省电量。如需详细了解如何启用该功能,请参阅 track selection guide。