继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

MediaCodec 音视频解码 核心代码

弑天下
关注TA
已关注
手记 141
粉丝 12
获赞 51

mediaCodec = MediaCodec.createDecoderByType("video/avc");
                MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", 1920, 1080);
                mediaCodec.configure(mediaFormat, palyer_surfaceView.getHolder().getSurface(), null, 0);
//                mediaCodec = MediaCodec.createDecoderByType("audio/mp4a-latm");
//                MediaFormat format = new MediaFormat();
//                format.setString(MediaFormat.KEY_MIME, "audio/mp4a-latm");
//                format.setInteger(MediaFormat.KEY_CHANNEL_COUNT, 1);
//                format.setInteger(MediaFormat.KEY_SAMPLE_RATE, 44100);
//                format.setInteger(MediaFormat.KEY_BIT_RATE, 64 * 1024);//AAC-HE 64kbps
//                format.setInteger(MediaFormat.KEY_AAC_PROFILE, MediaCodecInfo.CodecProfileLevel.AACObjectHE);
//                mediaCodec.configure(format, null, null, 0);
                mediaCodec.start();

ByteBuffer[] inputBuffers = mediaCodec.getInputBuffers();
            int inputBufferIndex = mediaCodec.dequeueInputBuffer(0);
            if (inputBufferIndex >= 0) {
                ByteBuffer inputBuffer = inputBuffers[inputBufferIndex];
                inputBuffer.clear();
                inputBuffer.put(buffer, 0, buffer.length);
                mediaCodec.queueInputBuffer(inputBufferIndex, 0, buffer.length, mCount * 100000 / 30, 0);
                mCount++;
            }
            MediaCodec.BufferInfo bufferInfo = new MediaCodec.BufferInfo();
            int outputBufferIndex = mediaCodec.dequeueOutputBuffer(bufferInfo, 1000);
            if (outputBufferIndex >= 0) {
                mediaCodec.releaseOutputBuffer(outputBufferIndex, true);
            }

原文链接:http://www.apkbus.com/blog-838850-62596.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP