MediaPlayerが利用可能になるとすぐにビデオを表示しないのはなぜですか。つまり、ビデオが再生されるとiPhoneに表示され、ビデオがすぐに表示されます。一時停止から戻ったときでも。ただし、Androidでは、使用するデバイスとバックグラウンドで実行されているプロセスの数に応じて、画面が数ミリ秒から1秒間黒くなります。
ビデオ再生の最初のフレームの1つをスクリーンショットの一種として使用したいので、これを求めています。現在、ハンドラーを使用して、ビデオを一時停止する前に1秒間待機しています。
誰かが、私の回避策の代わりに、ビデオが開始または準備されたらすぐに表示するための簡単な方法を教えてもらえますか?
編集:これが私のビデオプレーヤーを準備する方法ですので、正しく準備する必要があります。
private void initVideo()
{
Log.i("VideoPlayer", "Initialize Video File" + videoFileName);
AssetFileDescriptor afd;
try {
if(videoFileName != null);
{
afd = getAssets().openFd(videoFileName);
vidplayer = new MediaPlayer();
vidplayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
vidplayer.setDisplay(holder);
vidplayer.prepare();
vidplayer.setOnCompletionListener(this);
vidplayer.setOnPreparedListener(this);
//Log.i("INITVIDEO", Integer.toString(videoPausedAt));
vidplayer.seekTo(videoPausedAt);
//Log.i("VideoPlayer", "video Prepared");
videoDuration = vidplayer.getDuration()/1000;
isVideoReady = true;
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e)
{
//Log.i("InitPlayer", e.getClass().toString());
e.printStackTrace();
}
}