0

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();
    }


}
4

2 に答える 2

1

背景として、ビデオのサムネイルを取得できます。

private Bitmap getThumbnail(String path){
    try{
        return ThumbnailUtils.createVideoThumbnail(path, MediaStore.Images.Thumbnails.MINI_KIND);

    }catch(Exception e){
        return null;
    }
}

ビデオが開始したら、背景をnullに戻す必要があります。そうしないと、ビデオを見ることができなくなります。

すぐに再生されない場合は、正しく準備すればstart()が呼び出されるとすぐに再生されるはずですが、インターネット上のストリームなどからデータをロードする必要がある場合は、遅延する可能性があります。

于 2012-06-13T18:55:53.100 に答える
0

私はそれが電話のせいであることがわかりました。(ほとんど)電話がアプリで行き詰まっていない限り、ビデオは自動的に表示され、ビデオのロードに時間がかかります(VoIPサービスを実行した後に通知されます)。

于 2012-07-09T16:58:33.440 に答える