调用MediaCodec.configure()时出现IllegalStateExcpetion

时间:2014-10-22 12:37:48

标签: android google-glass mediacodec

我很清楚关于此异常还有一些其他主题,但它们似乎都不是我问题的根源。我正在尝试录制来自Google Glass的实时视频,但只有一个编码器似乎可以正常工作(mime video / avc)。每当我尝试不同的编码器时,我都会一直收到IllegalStateExceptions。相关代码:

MediaFormat format = MediaFormat.createVideoFormat("video/svc", 1280, 720);
format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
format.setInteger(MediaFormat.KEY_BIT_RATE, 10000000);
format.setInteger(MediaFormat.KEY_FRAME_RATE, 30);
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);
mEncoder = MediaCodec.createEncoderByType("video/svc");
mEncoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
mEncoder.start();

正如我所说,应用程序在mEncoder.configure崩溃,向我抛出IllegalStateException:

E/ACodec﹕ [OMX.TI.DUCATI1.VIDEO.H264SVCE] configureCodec returning error -1010
E/MediaCodec﹕ Codec reported an error. (omx error 0x80001001, internalError -1010)
W/System.err﹕ java.lang.IllegalStateException
W/System.err﹕ at android.media.MediaCodec.native_configure(Native Method)

我希望有人能说清楚我在这里做错了什么。

提前致谢, 钨

1 个答案:

答案 0 :(得分:0)

IllegalStateExceptions!似乎没有指定KEY_COLOR_FORMAT。作为我的测试结果,Google glass' mediacodec api只支持'COLOR_TI_FormatYUV420PackedSemiPlanar',如果编码类型是'video / avc'。