バックグラウンド サービスで実行されている mediaplayer インスタンスがあります。私の主な活動では、サーフェスビューがあります。
アクティビティが起動し、サーフェス ビューが作成されると、サービスにバインドし、メディア プレーヤーのディスプレイ サーフェスをメイン アクティビティのサーフェス ビューに設定します。私はこれを行いますmPlayer.setSurface(sv.getHolder().getSurface());
ビデオが表示され、これまでのところすべて正常に動作しています。SurfaceView が破棄されると、surfaceDestroyed()
コールバックで を呼び出して、MediaPlayer から SurfaceView を切り離そうとしますmPlayer.setSurface(null);
。問題は、これを行うと、メディアプレーヤーからエラーが発生することです (エラー コード 1)。
だから私の質問はこれです.MediaPlayerオブジェクトを設定し、SurfaceViewを設定した後、MediaPlayerオブジェクトmPlayer.setSurface(sv.getHolder().getSurface());
を停止または再初期化せずにそのSurfaceViewを解放またはデタッチする方法はありますか?
前もって感謝します。