В моем классе адаптера я реализовал код для ExoPlayer
, и он отлично работает. У меня есть вопрос: когда пользователь уходит со страницы с видео, я хочу, чтобы ExoPlayer
останавливался автоматически. Не могу придумать, как это сделать.
Если они находятся на одной странице, но, например, просто прокручивают вниз, видео не должно останавливаться, но если они уйдут со страницы, на которой воспроизводится видео, видео должно быть приостановлено или остановлено.
И это мой класс адаптера, поэтому я не могу позвонить onPause()
и onResume()
, или это неправильно?
В другом моем действии, которое я использовал onPause()
, и он работает нормально, но здесь я должен сделать это по-другому, верно?
Нужно ли мне вручную go писать код, чтобы приостанавливать видео с каждым щелчком, который уводит пользователя от экран с видео?
public void setVideo(String videoUrl) {
try {
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter.Builder(mContext).build();
TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter));
mExoPlayer = ExoPlayerFactory.newSimpleInstance(mContext, trackSelector);
Uri videoUri = Uri.parse(videoUrl);
DefaultHttpDataSourceFactory dataSourceFactory = new DefaultHttpDataSourceFactory("posts");
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
MediaSource mediaSource = new ExtractorMediaSource(videoUri, dataSourceFactory, extractorsFactory, null, null);
mPlayerView.setPlayer(mExoPlayer);
mExoPlayer.prepare(mediaSource);
mExoPlayer.setPlayWhenReady(false);
} catch (Exception e) {
Log.e("ViewHolder", "ExoPlayer error: " + e.toString());
}
}
В моем EditVideoPostActivity я сделал так, что работает
@Override
protected void onPause() {
super.onPause();
mExoPlayer.setPlayWhenReady(false);
mExoPlayer.getPlaybackState();
}