MediaPlayerをバックグラウンドで使用してビデオを再生したいので、ユーザーが私のアプリを離れても音声が聞こえ、アプリに戻ったときにビデオが表示されます。MediaPlayerを再生するサービスで最初の部分を実行できましたが、2番目の部分で問題が発生します。アプリを終了して戻ると、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();
}
}
}
私のサービスであり、彼mService
はMediaPlayerを保持していますplayer
。
私の研究では、この投稿を見ました: Androidでビデオ再生アクティビティに戻ったときの黒い画面
しかし、これは1年前に投稿されたので、誰かが別の新しい答えを持っているかもしれません。
編集:ビデオがストリーミングされていると言うのを忘れたので、リセットは良いオプションではありません(私は試しました:))。
SurfaceViewをサービスに保存し、ユーザーが戻ってビューを取得して現在のレイアウトに動的に追加することは可能ですか?