android - ExoPlayer:使用视频文件在后台播放声音
问题描述
播放视频,当应用程序进入后台时,它应该继续播放音频,当我重新打开它时,它应该根据我们在音频中的位置恢复视频。
我在服务中使用 exoplayer,我能够在后台播放音频,但是当我对视频执行相同操作时,音频正在播放,但是当我回到应用程序时,视频只是黑屏,如果我再次重复(进入后台并返回应用程序)该步骤,它将继续播放视频。
据我了解,exoplayer 正在缓冲下一帧,并且播放器视图被卡住,无法一次渲染所有帧。
我有一个 exoplayer 实例:
public class ExoPlayerWrapper {
private static SimpleExoPlayer exoPlayer;
public static SimpleExoPlayer getExoPlayer(Context context){
if(exoPlayer == null){
exoPlayer = ExoPlayerFactory.newSimpleInstance(context, new DefaultTrackSelector());
}
return exoPlayer;
}
public static void release() {
if(exoPlayer != null) {
exoPlayer.release();
exoPlayer = null;
}
}
}
一旦视图处于前台,服务就会运行
解决方案
最后,我做到了,在暂停设置 playerView.setPlayer(null) 和在恢复设置 playerView.setPlayer(exoplayer_instance)
推荐阅读
- wordpress - 将 WordPress 从 Live 迁移到 Localhost MAMP
- php - 使用 Microsoft Access 数据库的 PHP PDO 的 REPLACE 版本
- java - hazelcast 4.x 开源安全
- python - numpy混淆中的子集
- r - 如何从 R 中的分类变量中删除 NA 观察值
- cassandra - 如何减少或是否有必要减少 Cassandra 中大量数据的分区数?
- python - BeautifulSoup 不显示内容
- python - 如何使烧瓶中的数据库过滤更有效?
- amazon-web-services - 对象因生命周期规则而过期时的 S3 事件
- reporting-services - SSRS 适合比例图像