我正在尝试添加功能以在 Android 上提取、解码、编辑、编码和混合视频。因此,我发现了一些非常有用的实现,它是 Android CTS ExtractDecodeEditEncodeMuxTest的一部分。不幸的是,代码只有在作为测试用例的一部分执行时才有效。我试图从正常活动中执行它并得到:
E/ExtractDecodeEditEncodeMuxTest (18781): java.lang.IllegalStateException: 无法停止复用器
W/System.err(18781):java.lang.RuntimeException:表面帧等待超时 W/System.err(18781):在 ...OutputSurface.awaitNewImage(OutputSurface.java:216)
任何想法,为什么输出表面不接收帧?
更新: 这里是工作测试用例和非工作实现的日志文件。两者的代码完全相同。唯一的区别是工作的一个是 AndroidTestCase,另一个是在 IntentService 内的应用程序中运行。
似乎整个事情在大约 6 帧后停止提取和解码。有任何想法吗?