0

嗨,谁能告诉我如何拍摄在 videoview 中播放的视频的快照。快照给出了空白图像,或任何方法来获取当前视频帧,我想选择当前帧,任何人都可以帮助请

4

1 回答 1

0

最有效的解决方案是MediaMetadataRetriever。首先打电话

setDataSource(文件描述符 fd)

是的,这是一个相当棘手的方法。有时它需要复杂的解决方案。这是一个例子:

public void setVideo(Uri videoPath) {
    videoUri = videoPath;
    File file = new File(videoPath.getPath());
    ParcelFileDescriptor pfd;

    FileDescriptor fd = new FileDescriptor();
    try {
        pfd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_WRITE);
        fd = pfd.getFileDescriptor();
        metadataRetriever.setDataSource(fd);           
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

设置您要使用的视频。其次使用这种方法:

getFrameAtTime(long timeUs)

提取帧。请记住,您应该使用微秒作为参数

于 2013-03-03T07:50:50.583 回答