2017-03-07 3 views
0

ビデオが再生されているランダムな時間にスナップバーをポップアップしようとしています。既にビデオデュレーションとビデオを実行できます。私はビデオ期間中にランダムな時間にスナックバーを表示するようにハンドラを設定することもできました。URLからのビデオビューでアンドロイドVideoViewでビデオが始まるリアルタイムをどのように知ることができますか?

Uri uri2 = Uri.parse("my video link"); 

MediaPlayer mp = MediaPlayer.create(this, uri2); 
int duration = mp.getDuration(); 
mp.reset(); 
mp.release(); 

mVideoView2.setVideoURI(uri2); 
mVideoView2.requestFocus(); 
mVideoView2.start(); 

私には1つの問題があります。 videoview.start()を呼び出すと、すぐにビデオが開始されません。バッファ時間があります。私はビデオの再生中にランダムにスナックバーを表示したいだけです。ビデオの長さが7秒でランダム時間が3秒で、バッファ時間またはプリロード時間が3秒であると仮定すると、ビデオの前にスナックバーが表示されます。バッファ時間を知る方法があるか、ビデオが準備されているときにハンドラの呼び出しを開始する方法がありますか?

+0

私はプレイヤー '' 'getCurrentPosition'''と毎秒の現在の位置を確認することをお勧めハンドラを呼び出すと、 '' '' getCurrentPosition'''があなたのランダムな時間と等しい値を返す場合、トーストを表示します。注意 '' 'getCurrentPosition''は時間をミリ秒単位で返します。 – danypata

答えて

0

OnPreparedListenerは、通知を受けるに設定した場合のビデオ負荷

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      //play video... video is ready to play 
     } 
    }); 
+1

'onPrepared'メソッドで' mVideoView2.start(); 'を呼び出すだけです –

+0

悪いインターネット接続がある場合、それは動作しません。プレイヤーが接続のために1回以上、または数回バッファリングする可能性があります。その場合、問題があります。 – danypata

+0

'onPrepared'メディアファイルが再生準備ができているときに呼び出されるので、不正なインターネット接続がある場合はメディアファイルが既にバッファリングされます。 –

関連する問題