gpt4 book ai didi

android - 从后台返回视频时出现空白屏幕

转载 作者:行者123 更新时间:2023-12-03 21:36:46 24 4
gpt4 key购买 nike

我正在使用 google IMA 示例在我的应用程序中运行视频,经过一些更改以确保它满足我的需要,我仍然有一个我无法解决的问题,我希望在应用程序从后台返回时播放视频或根据 Activity 停止前的状态暂停。

当用户在暂停模式下停止 Activity 时,我有状态,我有位置,还有一个问题。当我从后台返回视频时,屏幕是黑色的,直到我按下 Controller 中的开始,并且不需要寻找定位它。

从后台返回时,我需要暂停显示预览图像。

@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();
}
}, 1000);
}

}
super.onResume();
}

最佳答案

onPause 中处理暂停播放,同时保存 playbackPosition .
onResume查看以前的playbackPosition与当前。如果它们不匹配,请重新初始化您的 MediaPlayer寻求playbackPosition并使用 play() 继续播放, 否则只执行 play() .

View 可能还需要重新初始化。这可能是黑屏的原因。

关于android - 从后台返回视频时出现空白屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34839539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com