安卓获取支持的视频格式

import android.media.MediaCodecInfo.CodecCapabilities;
// ...

        MediaCodecInfo codecInfo = codec.getCodecInfo();
        MediaCodecInfo.CodecCapabilities capabilities = codecInfo.getCapabilitiesForType("video/avc");

        List<String> dynamicArray = new ArrayList<>();


        for (int colorFormat : capabilities.colorFormats) {

            dynamicArray.add(getColorFormatName(colorFormat));
//            Timber.i(getColorFormatName(colorFormat));
        }

// ...

   private String getColorFormatName(int colorFormat) {
        switch (colorFormat) {
            case MediaCodecInfo.CodecCapabilities.COLOR_Format12bitRGB444:
                return "COLOR_Format12bitRGB444";
            case MediaCodecInfo.CodecCapabilities.COLOR_Format16bitARGB1555:
                return "COLOR_Format16bitARGB1555";
            case MediaCodecInfo.CodecCapabilities.COLOR_Format16bitARGB4444:
                return "COLOR_Format16bitARGB4444";
            case MediaCodecInfo.CodecCapabilities.COLOR_Format16bitBGR565:
                return "COLOR_Format16bitBGR565";
            case MediaCodecInfo.CodecCapabilities.COLOR_Format16bitRGB565:
                return "COLOR_Format16bitRGB565";
            case MediaCodecInfo.CodecCapabilities.COLOR_Format18BitBGR666:
                return "COLOR_Format18BitBGR666";
            case MediaCodecInfo.CodecCapabilities.COLOR_Format18bitARGB1665:
                return "COLOR_Format18bitARGB1665";
            case MediaCodecInfo.CodecCapabilities.COLOR_Format18bitRGB666:
                return "COLOR_Format18bitRGB666";
            case MediaCodecInfo.CodecCapabilities.COLOR_Format19bitARGB1666:
                return "COLOR_Format19bitARGB1666";
            // ... 添加更多的颜色格式
            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar:
                return "COLOR_FormatYUV420Planar";
            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420PackedPlanar:
                return "COLOR_FormatYUV420PackedPlanar";
            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420SemiPlanar:
                return "COLOR_FormatYUV420SemiPlanar";
            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV422Planar:
                return "COLOR_FormatYUV422Planar";
            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV422PackedPlanar:
                return "COLOR_FormatYUV422PackedPlanar";
            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV422SemiPlanar:
                return "COLOR_FormatYUV422SemiPlanar";
            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV422PackedSemiPlanar:
                return "COLOR_FormatYUV422PackedSemiPlanar";
            case MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV444Interleaved:
                return "COLOR_FormatYUV444Interleaved";
            case MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface:
                return "COLOR_FormatSurface";
            // 如果colorFormat是未知的,返回其整数值
            default:
                return "Unknown (" + colorFormat + ")";
        }
    }

猜你喜欢

转载自blog.csdn.net/jacke121/article/details/134610518
今日推荐