应用流传输H.264视频,可在许多设备和模拟器上正常运行。但是,在Genymotion Android 4.4.2模拟器(Google Nexus 7 2013)上,以下代码始终会导致应用崩溃:
try
{
myMediaCodec .configure(myMediaFormat, mySurface, null, 0);
}
catch(Exception ex)
{
//no exception has ever been caught here
}
try-catch块无法捕获错误。以下是LogCat崩溃产生的内容:
06-16 23:06:22.749: E/ACodec(4535): [OMX.ffmpeg.h264.decoder] storeMetaDataInBuffers failed w/ err -2147483648
06-16 23:06:22.769: A/ACodec(4535): frameworks/av/media/libstagefright/ACodec.cpp:3813 CHECK_EQ( (status_t)OK,mCodec->initNativeWindow()) failed: 0 vs. -2147483648
06-16 23:06:22.769: A/libc(4535): Fatal signal 4 (SIGILL) at 0xb77b763d (code=2), thread 4608 (CodecLooper)
如果我知道这只能在模拟器上发生,我不会担心。由于我无法测试Android的每个型号,我担心这可能会发生在其他一些设备上。我想知道是否有人可以提供一些提示,如何防止或捕获这些,以避免崩溃的应用程序。我对上面的LogCat消息了解甚少。
答案 0 :(得分:0)
评论
// videoFormat.setInteger("max-input-size", this.mWidth*this.mWidth);