我已经在其中一个活动中添加了ExoPlayer来播放视频,而且它正在正常工作。但是当视频播放,用户按回键时,视频仍然在后台播放。我想让它停下来。我试着捕捉后退按钮,尝试暂停视频,但它不起作用。除非你停止这个活动,否则视频就会继续播放,直到结束为止。它是一个bug还是这个库应该是这样工作的?
以下是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);这是我试图用来阻止视频的代码。
@Override
public void onBackPressed(){
try{
exoPlayer.stop();
}catch(Exception e){
e.printStackTrace();
}
}我在调试模式下检查代码,并执行此语句,但仍未停止视频。
发布于 2018-01-29 17:51:51
试试这个..。
if (exoPlayer != null) {
exoPlayer.setPlayWhenReady(false);
exoPlayer.stop();
exoPlayer.seekTo(0);
}发布于 2019-05-03 01:08:35
在我的项目中,我也经历了同样的问题。我遇到的问题是- Exoplayer在加载屏幕时被初始化了两次,当我们按照SDK版本在onPause或onResume()中调用onResume()时释放了一个实例。即使活动被关闭,第二个实例仍继续在后台播放。因此,请再次检查Exoplayer是否已初始化两次。如果它被初始化不止一次,请进行必要的更改以将其初始化一次。
发布于 2018-10-13 05:49:43
我的代码用于音频活动:
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();
}https://stackoverflow.com/questions/48506487
复制相似问题