我正在使用新的API MediaCodec和MediaExtractor构建一个Android视频播放器应用程序(可从API 16获得)。它通常运作良好,但有时我会发生一个非常无意义的消息:
09-30 16:39:13.985: A/MediaCodec(6508): frameworks/av/media/libstagefright/MediaCodec.cpp:423 CHECK(buffer->meta()->findInt64("timeUs", &timeUs)) failed.
09-30 16:39:13.985: A/libc(6508): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 12769 (MediaCodec_loop)
如果有人能让我更好地了解出了什么问题,那将会很好。崩溃通常发生在我打开视频,播放一点,退出视频,转到另一个视频时。它只发生了很少的时间,但非常烦人。
答案 0 :(得分:1)
我终于找到了解决方案。我在这里回答,所以发现同样问题的人可以解决它。
当我的mediacodec在文件末尾附近播放时,它不会将更多输入缓冲区排入inputQueue,因此当它需要将缓冲区出列时,它找不到任何缓冲区来播放