我想在后台使用 MediaPlayer 播放视频,因此当用户离开我的应用程序时,他仍然会听到音频,而当他返回应用程序时,他会看到视频。我设法用播放 MediaPlayer 的服务完成了第一部分,但第二部分有问题。当我离开应用程序并返回时,SurfaceView 中不显示视频。
当用户返回时,我创建了新的 Surface,所以我尝试了这个:
public void surfaceCreated(SurfaceHolder holder) {
if(mService!=null && mService.player.isPlaying()){
try {
mService.player.setDisplay(holder);
mService.player.prepare();
mService.player.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
WhilemService
是我的服务,他持有 MediaPlayer player
。
在我的研究中,我看到了这篇文章: 返回 Android 中的视频播放活动时出现黑屏
但这是一年前发布的,所以也许任何人都有任何不同的新答案。
编辑:我忘了说视频正在流式传输,所以重置不是一个好的选择(我试过:))。
是否可以将 SurfaceView 保存在服务中以及当用户返回查看视图并将其动态添加到当前布局时?