小编use*_*955的帖子

如何使用MediaCodec从视频中获取位图(帧)

我正在尝试使用MediaCodec从视频文件中获取所有帧.如果我尝试在SurfaceView上显示视频,一切正常.但是如果surface为null,并且当我尝试从字节数组中获取Bitmap时,alwaus将获得null或运行时异常.

这是我的代码:

private class PlayerThread extends Thread {
    private MediaExtractor extractor;
    private MediaCodec decoder;
    private Surface surface;

    public PlayerThread(Surface surface) {
        this.surface = surface;
    }

    @Override
    public void run() {
        extractor = new MediaExtractor();
        extractor.setDataSource(videoPath);

        for (int i = 0; i < extractor.getTrackCount(); i++) {
            MediaFormat format = extractor.getTrackFormat(i);
            String mime = format.getString(MediaFormat.KEY_MIME);
            if (mime.startsWith("video/")) {
                extractor.selectTrack(i);
                decoder = MediaCodec.createDecoderByType(mime);
                decoder.configure(format, /*surface*/ null, null, 0);
                break;
            }
        }

        if (decoder == null) {
            Log.e("DecodeActivity", "Can't find video info!");
            return;
        } …
Run Code Online (Sandbox Code Playgroud)

android bitmap mediacodec

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

bitmap ×1

mediacodec ×1