ExoPlayer 停止/暂停不起作用

NoN*_*aMe 6 video android exoplayer

我在其中一项活动中添加了 ExoPlayer 来播放视频并且它工作正常。但是当视频正在播放并且用户按下返回按钮时,视频仍然在后台继续播放。我希望它被阻止。我尝试捕获后退按钮并尝试暂停视频,但它不起作用。除非您终止活动,否则视频会一直播放直到结束。这是一个错误还是图书馆应该如何工作?

这是 expPlayr 的工作代码

    String url = getIntent().getStringExtra("videoURL");
    String title = getIntent().getStringExtra("title");
    exoPlayerView = (SimpleExoPlayerView) findViewById(R.id.exo_player_id);

    BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();

    TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter));

    exoPlayer = ExoPlayerFactory.newSimpleInstance(this, trackSelector);

    DefaultHttpDataSourceFactory dataSourceFactory = new DefaultHttpDataSourceFactory(title);
    ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
    MediaSource m = new HlsMediaSource(Uri.parse(url), dataSourceFactory, null,null);

    exoPlayerView.setPlayer(exoPlayer);
    exoPlayer.prepare(m);
    exoPlayer.setPlayWhenReady(true);
Run Code Online (Sandbox Code Playgroud)

这是我试图用来停止视频的代码。

@Override
    public void onBackPressed(){
        try{
            exoPlayer.stop();

        }catch(Exception e){
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我在调试模式下查看代码并执行此语句,但仍然没有停止视频。

Nav*_*Dew 8

尝试这个...

if (exoPlayer != null) {
    exoPlayer.setPlayWhenReady(false);
    exoPlayer.stop();
    exoPlayer.seekTo(0);
}
Run Code Online (Sandbox Code Playgroud)


and*_*ryo 7

我在我的项目中也遇到了同样的问题。我遇到的问题是 - Exoplayer 在屏幕加载时初始化两次,并且当我们根据 SDK 版本在 onPause 或 onResume() 中调用 realeseExoplayer() 时释放一个实例。即使活动关闭,第二个实例也会继续在后台播放。因此请求仔细检查 Exoplayer 是否已初始化两次。如果多次初始化,请进行必要的更改以初始化一次。