首页 > 解决方案 > 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;
    }
}
}

一旦视图处于前台,服务就会运行

标签: androidandroid-serviceexoplayer

解决方案


最后,我做到了,在暂停设置 playerView.setPlayer(null) 和在恢复设置 playerView.setPlayer(exoplayer_instance)


推荐阅读