我想同时解码和播放两个视频。我的代码不是很复杂,你可以看到下面的解码器配置部分。它基于google/grafika的 MoviePlayer。
final String mime = format1.getString(MediaFormat.KEY_MIME);
decoder1 = MediaCodec.createDecoderByType(mime);
decoder1.configure(format1, mOutputSurface1, null, 0);
decoder1.start();
decoder2 = MediaCodec.createDecoderByType(mime);
decoder2.configure(format2, mOutputSurface2, null, 0);
decoder2.start();
这适用于高达 1080p 的视频,但是当我尝试播放 4K 视频时,第二个解码器无法配置并出现错误:
E/ACodec﹕ configureCodec multi window instance fail appPid : 13182
E/ACodec﹕ [OMX.qcom.video.decoder.avc] configureCodec returning error -38
E/MediaCodec﹕ Codec reported an error. (omx error 0x80001001, internalError -38)
如果我只留下一个解码器,即使是 4K 视频也能正常工作。我在这个问题中找到了一些讨论,但我不确定它是否与我的问题有关。我可以确认这发生在三星 Galaxy S6 和三星 Galaxy Note 4
上。有没有办法让两个解码器处理 4K 视频?