- привязать декодирование к поверхности
mediaCodecDecoder.configure(format, surface, null, 0);
mediaCodecDecoder.start();
- Я получил данные в формате byte[], используйте медиакодек для декодирования и отображения
ByteBuffer byteBuffer = mediaCodecDecoder.getInputBuffer(index);
byteBuffer.put(data);
mediaCodecDecoder.queueInputBuffer(index, 0, data.length,System.currentTimeMillis(),0);
int encoderStatus = mediaCodecDecoder.dequeueOutputBuffer(this.decodeBufferInfo, 1_000);
if(encoderStatus>0){
mediaCodecDecoder.releaseOutputBuffer(encoderStatus, true);
}
Я использую кодировщик для привязки новой поверхности, но не знаю, как заставить буфер декодирования кодировать
eglBase = EglBase.create(sharedContext, EglBase.CONFIG_RECORDABLE);
encodeSurface = encoder.createInputSurface();
eglBase.createSurface(encodeSurface );
eglBase.makeCurrent();
Подробнее здесь: https://stackoverflow.com/questions/791 ... ave-to-mp4
Мобильная версия