2017-05-16 9 views
0
// Play video when the media source is ready for playback. 

mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 

    @Override 
    public void onPrepared(MediaPlayer mp) { 
    mMediaPlayer.start(); 
    // mMediaPlayer.getDuration(); 

    MediaMetadataRetriever mMMR = new MediaMetadataRetriever(); 
    mMMR.setDataSource(FILE_NAME, new HashMap<String, String>()); 

    String time = mMMR.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); 
    Bitmap bitmap; 
    int fps = 24; 
    int deltaT= (int)1/fps; 
    for (int time_ms=1;time_ms<Integer.valueOf(time)*1000;time_ms+=24){ 
     bitmap = mMMR.getFrameAtTime(5000); 
     if (bitmap==null) break; 
    } 
} 
}); 

MediaMetadataRetrieverに接続しようとしましたが、ビデオが再生されませんでした。 それは非同期の方法でそれを実装する方法が面白いです:ビデオは再生され、背景で私たちは5秒のビデオで写真を撮っていますか?具体的な時間にTextureViewでビデオを再生することからフレームを取り込む方法は?

答えて

0

TextureViewにはSurfaceTextureがあります。この機能は、5秒ループで使用できます。

Bitmap bitmap = SurfaceTexture.getBitmap([with,height]) 
関連する問題