从后台返回视频时出现黑屏

原学程将引见从背景前往望频时涌现乌屏的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

从后台返回视频时出现黑屏 教程 第1张

成绩描写

我正在应用Google IMA示例在我的运用法式中运转望频,经由几回变动以保证它不克不及知足我的需供后,我依然有1个成绩没法从新处理,我愿望在运用法式从背景前往时播搁望频,或许依据运动停滞前的状况暂停望频。

当用户在暂停形式下停滞运动时,我有状况,我有地位,但是借有1个成绩。当我从背景前往到望频时,屏幕是乌色的,直到我按下掌握器中的开端,而且没有须要寻觅它的地位。

我须要在从背景前往时以暂停形式显示预览图象。

@Override
public void onResume() {
 if (mVideoPlayerController != null) {
  mVideoPlayerController.resume();

  if (mVideoPlayerController.isContentStarted())
if (isPlayedBeforePaused) {
 mVideoPlayer.play();
} else {

}
 }
 super.onResume();
}

在我的望频播搁器中:

 @Override
 public void play() {
  start();
 }

 @Override
 public void start() {
  super.start();
  // Fire callbacks before switching playback state.
  switch (mPlaybackState) {
case STOPPED:
 for (PlayerCallback callback : mVideoPlayerCallbacks) {
  callback.onPlay();
 }
 break;
case PAUSED:
 for (PlayerCallback callback : mVideoPlayerCallbacks) {
  callback.onResume();
 }
 break;
default:
 // Already playing; do nothing.
  }
  mPlaybackState = PlaybackState.PLAYING;
 }

这是我好劲的处理计划,但是我没有想写这种代码

@Override
public void onResume() {
 if (mVideoPlayerController != null) {
  mVideoPlayerController.resume();


  if (mVideoPlayerController.isContentStarted())
if (isPlayedBeforePaused) {
 mVideoPlayer.play();
} else {
 mVideoPlayer.play();
 final Handler handler = new Handler();
 handler.postDelayed(new Runnable() {
  @Override
  public void run() {
mVideoPlayer.pause();
  }
 }, 一000);
}

 }
 super.onResume();
}

推举谜底

我独一的处理计划是播搁以及暂停望频,但是只能在望频预备佳以后能力播搁以及暂停。

我的重要运动

@Override
public void onResume() {
 if (mVideoPlayerController != null) {
  mVideoPlayerController.resume();


  if (mVideoPlayerController.isContentStarted())
if (isPlayedBeforePaused) {
 mVideoPlayer.play();
} else {
 // set pause request will notify on prepare to play and pause
 // this fix the bug that on pause when return from background it shows black screen
 mVideoPlayerController.mVideoTracker.setPauseRequest();
}

 }
 super.onResume();
}

以及我的望频追踪器(望频望图)

super.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
 @Override
 public void onPrepared(MediaPlayer mp) {
  mMediaPlayer = mp;
  if (mPauseRequest) {
play();
pause();
mPauseRequest = false;
  }
 }
});

我晓得这没有是最佳的办法,但是这是我发明的最佳的办法,出有毛病,并且存留如许的器械(-:

愿望它能赞助或人

佳了闭于从背景前往望频时涌现乌屏的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。