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