5

2本連続で再生したいです。最初のビデオは常に問題なく再生されます。終了後、ログで新しいビデオURLが設定されていることがわかりますが、SurfaceViewはエラーをスローし、VideoViewは最初のビデオの最後のフレームでフリーズします。他には何も起こりません。何かご意見は ?ありがとう !

LE:驚いたことに、OnPreparedListenerは2番目のビデオに対して呼び出されます。

LE2:2番目のビデオがうまく再生されることもあれば、そうでないこともあります...そして、動作するときと動作しないときの間でコード行を変更していません。それは純粋にランダムです...

LE3:簡単な解決策は、新しいビデオURLを設定する前に次の行を追加することです。

mVideoView.setVisibility(View.GONE);

OnCompletionListenerからのコード:

setCurrentPlaybackUrl(); // sets mCurrentMediaUrl to the second video URL
mVideoView.setVideoPath(mCurrentMediaUrl);
mVideoView.start();

これは、最初のビデオの再生が終了したときのログ出力です。

10-22 12:32:35.762: I/AwesomePlayer(126): setDataSource_l('https://xx/TestingVideo_lo.mp4')
10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3, req=3)
10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture failed: -22
10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3, req=3)
10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture failed: -22
4

1 に答える 1

4

を試して、onCompletion(MediaPlayer mp)追加mp.stop()してから自分の作業を行ってください。

編集:私はこれを試しましたが、機能しています:

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
       play_video();
}
});

play_video();

次のplay_video方法は次のとおりです。

void play_video() {
    Uri uri = Uri.parse(video_link);
    videoView.setVideoURI(uri);    
    videoView.requestFocus();
    videoView.setVisibility(View.VISIBLE);
    videoView.start();

 }

唯一の違いは、2つの異なるビデオではなく、同じビデオを2回再生したことです。

于 2012-10-22T10:09:26.297 に答える