7

私が開発しているアプリには、多くの短い (1 ~ 2 秒) ビデオが含まれています。

ビデオは 1 つのアクティビティで表示されます。ユーザーは、ビデオを再生するか (おそらくビデオの再生中に)、実際のビデオを変更できます。

コード変更ビデオの一部:

String videoPath = getVideoPath();
videoView.setVideoPath(videoPath);
videoView.start();

これらの 3 行により、アプリは既に新しいビデオを読み込んで再生しています。

ビデオが完成した後に問題が発生します。この時点から、新しいビデオをロードすると多くの問題が発生します (映画の半分で、画面が真っ黒で何もないときにサウンドのみが再生されることがあります)。ビデオの再生にも同様の問題があります (上から 3 つのレーンを呼び出すことになります)。

映画のリリースリソースなどを完了すると、Androidのように見えます(そのため、ビデオを再生したいときに同じパスを設定しています)。

理想的には、ビデオを一時停止して、再生が終了した後に映画の先頭に seekTo したいのですが (ただし、状態が既に停止に変更されているため、OnCompletedListener でこれを行うことはできません...)。

どうにかしてこれを達成できますか?(つまり、-> ビデオの一時停止が完了し、seekTo が開始した後)

ビデオの一時停止、一時停止、OnPreparedListenerの設定、OnCompletedListenerの設定のすべての組み合わせをすでに試しました。

どうも!

4

4 に答える 4

10

次のようなものを試してください

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer arg0) {
         mVideoView.start();

    }
});


mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
            mp.reset();
            mVideoView.setVideoPath(file.getAbsolutePath());
            mVideoView.start();
    }
});
于 2012-12-20T15:50:33.113 に答える
0

次の方法でコードをリファクタリングしました。新しいビデオが必要になるたびに、アクティビティ全体をリロードします。ほとんどの場合は機能しますが、再生開始時のビデオの黒さの代わりに、「メディアファイルを開けません」というエラーが表示されることがあります。

それはAndroidのリソース管理と関係がありますか?onCompletionListenerでmediaPlayerをリリースします。

誰かが外部ストレージから多くのビデオを再生するのにそのような問題を抱えていましたか?

于 2012-12-21T09:21:14.107 に答える