Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mediacodec ExtractMPegFrameST示例不匹配_Java_Android_Android Mediacodec - Fatal编程技术网

Java mediacodec ExtractMPegFrameST示例不匹配

Java mediacodec ExtractMPegFrameST示例不匹配,java,android,android-mediacodec,Java,Android,Android Mediacodec,我试图逃避,我认为这是一个不匹配 他们编写了“ExtractMpegFramesTest.java(需要4.1,API 16)”,因此所需的最低API为16, 但我查看了代码,他们使用了“importandroid.opengl.EGL14”,这要求最低API 17 有没有人遇到过这个问题并成功解决了?(成功在Android 4.1设备上保存了10帧)您可以使用它从视频文件中提取帧。它从API级别10开始提供。我已经更新了源文件的两个副本,一个使用EGL 1.0,另一个使用EGL 1.4。我用S

我试图逃避,我认为这是一个不匹配

他们编写了“ExtractMpegFramesTest.java(需要4.1,API 16)”,因此所需的最低API为16, 但我查看了代码,他们使用了“importandroid.opengl.EGL14”,这要求最低API 17


有没有人遇到过这个问题并成功解决了?(成功在Android 4.1设备上保存了10帧)

您可以使用它从视频文件中提取帧。它从API级别10开始提供。

我已经更新了源文件的两个副本,一个使用EGL 1.0,另一个使用EGL 1.4。我用SDK做了一个快速测试,为API 16创建了一个应用程序,以确认它不再使用post-4.1 API。但是,我还没有在运行4.1的实际设备上尝试过它。

我以前尝试过Media meta retriever,但我需要解码1920x1080的300帧,所以这对我来说太长了。该调用用于从视频流中提取单个缩略图。它并不是用来从视频中提取所有帧的。是的,可能不是,我只是在OP的问题中没有看到从视频中提取“全部”(或300)帧的请求。
getFrameAtTime()
的另一个问题是它是基于时间的,而不是基于帧的。如果视频不是以恒定的帧速率录制的——可能它有几帧,然后几秒钟内什么都没有,然后还有几帧——你最终会不必要地“创建”帧。根据数据的预期用途,这可能重要,也可能不重要。(请参阅4.4的
screenrecord
,了解以这种方式录制视频的示例—它只在屏幕更改时输出一帧。)首先非常感谢您的更新,现在没有错误。但是在这行后面有一个bug:boolean doRender=(info.size!=0),“doRender”在galaxy s3和galaxy s4上一直都是假的。这个例子很好用。好了,这个例子终于成功了!我只是不使用doRender变量。@Itay:我只是想让ExtractMPegFramest最有效。主要是我有一个带有按钮的主活动,和一个ExtractMpegFramesTest类。单击按钮后,它将创建一个ExtractMpegFramesTest对象,并运行object.testExtractMpegFrames()。但它不起作用。它抱怨java.lang.RuntimeException:帧等待超时。你能给我一个解决这个问题的线索吗?请看我的帖子:谢谢!