私はVideoViewコンポーネントを使用して動画を再生しています。私は手動でstopPlayback()を呼び出した後、VideoViewの表示をクリアしていないようです。元の背景が見えるようにVideoViewをリセットしたいと思います。Android VideoView stopPlayback()後の表示がクリア
- VideoViewコンポーネントでビデオを再生します。
- 新しいビデオを選択して再生します。
- VideoViewは、次のビデオが開始されるまで、最初のビデオの最後のフレームで停止します。次のビデオでエラーが発生した場合、最初のビデオからの静止画はそのまま残ります。
- ビデオを完成状態に再生させると、ディスプレイはクリアされます。
私はコードを使用して:VideoView.javaソースに基づいて
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();
}
}
注意を、stopPlaybackは()基礎となるMediaPlayerの上で次のアクションを実行します:
public void stopPlayback() {
if (mMediaPlayer != null) {
mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer = null;
}
}
私はこれを行う、次の再生はまだ前のものの最後のフレームを示しています。それがなぜ起こるかについてのアイデアは何ですか? – slhck
実際のビデオフレームは、VideoViewの「下」のサーフェスに描画されます。 VideoViewで背景を設定すると、フレームは非表示になりますが、消去はされません。背景がクリアされると、古いフレームはまだそこにあります。 – William