如何从具体时间在TextureView中播放视频中获取帧?

时间:2017-05-16 12:54:12

标签: android video screenshot textureview

// 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秒的视频?

1 个答案:

答案 0 :(得分:0)

TextureView具有SurfaceTexture。您可以在5s循环中使用此功能:

Bitmap bitmap = SurfaceTexture.getBitmap([with,height])