VideoView コンポーネントを使用してビデオを再生しています。手動で stopPlayback() を呼び出した後、VideoView の表示をクリアできないようです。元の背景が表示されるように VideoView をリセットしたいと思います。
- VideoView コンポーネントでビデオを再生します。
- 再生する新しいビデオを選択します。
- VideoView は、次のビデオが開始されるまで、最初のビデオの最後のフレームにとどまります。次のビデオでエラーが発生した場合、最初のビデオの静止画像はそのまま残ります。
- ビデオを完了状態まで再生すると、表示がクリアされます。
私が使用しているコード:
private VideoView videoViewer = null;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
if (videoViewer != null) {
videoViewer.setOnPreparedListener(new OnPreparedListener());
}
...
}
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (videoViewer != null) {
videoViewer.stopPlayback();
videoViewer.setVideoURI(Uri.parse("http://my_vido_url/playlist.m3u8"));
}
}
private class OnPreparedListener implements MediaPlayer.OnPreparedListener {
@Override
public void onPrepared(MediaPlayer mp) {
videoViewer.start();
}
}
VideoView.java ソースに基づいて、stopPlayback() は基礎となる MediaPlayer で次のアクションを実行することに注意してください。
public void stopPlayback() {
if (mMediaPlayer != null) {
mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer = null;
}
}