首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExoPlayer停止/暂停不工作

ExoPlayer停止/暂停不工作
EN

Stack Overflow用户
提问于 2018-01-29 17:08:13
回答 8查看 21.6K关注 0票数 10

我已经在其中一个活动中添加了ExoPlayer来播放视频,而且它正在正常工作。但是当视频播放,用户按回键时,视频仍然在后台播放。我想让它停下来。我试着捕捉后退按钮,尝试暂停视频,但它不起作用。除非你停止这个活动,否则视频就会继续播放,直到结束为止。它是一个bug还是这个库应该是这样工作的?

以下是expPlayr的工作代码

代码语言:javascript
复制
    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);

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

代码语言:javascript
复制
@Override
    public void onBackPressed(){
        try{
            exoPlayer.stop();

        }catch(Exception e){
            e.printStackTrace();
        }
    }

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

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2018-01-29 17:51:51

试试这个..。

代码语言:javascript
复制
if (exoPlayer != null) {
    exoPlayer.setPlayWhenReady(false);
    exoPlayer.stop();
    exoPlayer.seekTo(0);
}
票数 10
EN

Stack Overflow用户

发布于 2019-05-03 01:08:35

在我的项目中,我也经历了同样的问题。我遇到的问题是- Exoplayer在加载屏幕时被初始化了两次,当我们按照SDK版本在onPause或onResume()中调用onResume()时释放了一个实例。即使活动被关闭,第二个实例仍继续在后台播放。因此,请再次检查Exoplayer是否已初始化两次。如果它被初始化不止一次,请进行必要的更改以将其初始化一次。

票数 7
EN

Stack Overflow用户

发布于 2018-10-13 05:49:43

我的代码用于音频活动:

代码语言:javascript
复制
public void release() {

    if (exoPlayer != null) {
        exoPlayer.removeListener(eventListener);
        exoPlayer.release();
        exoPlayer = null;
        dataSpec =null;
        assetDataSource = null;
        factory = null;
        audioSource =null;
    }
}

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
    setPlayPause(false);
    release();

    finish();
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48506487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档