2013-12-10 57 views
3

我試圖運行This examplebigflake我認爲這是不匹配的。mediacodec ExtractMpegFramesTest示例不匹配

他們編寫「ExtractMpegFramesTest.java(需要4.1,API 16)」,所以最小的API需要是16, 但我查看代碼,他們使用「import android.opengl.EGL14;」這需要的最低API 17

有沒有人遇到過這個問題,併成功解決了嗎?(成功保存在Android 4.1設備10幀)

回答

3

我已更新the site以擁有源文件的兩個副本,一個使用EGL 1.0,另一個使用EGL 1.4。我使用SDK做了一個快速測試,爲API 16創建了一個應用程序,以確認它不再使用4.1之後的API。但是我沒有在運行4.1的實際設備上嘗試過。

+1

首先非常感謝您的更新,現在沒有錯誤。但在這行之後有一個錯誤:boolean doRender =(info.size!= 0); ,「doRender」在星系s3上一直變得虛假,在星系s4上這個例子效果很好。 – Itay

+0

好的,這個例子終於工作了! 我只是不使用doRender變量。 – Itay

+0

@Itay:我正在嘗試使ExtractMpegFramesTest工作。主要是我有一個按鈕的主要活動,和一類ExtractMpegFramesTest。點擊按鈕後,它將創建一個ExtractMpegFramesTest對象,並運行object.testExtractMpegFrames()。但它不起作用。它抱怨java.lang.RuntimeException:幀等待超時。你能給我一個線索來解決嗎?看到我的帖子:http://stackoverflow.com/questions/22139205/android-mediacodec-encoding-falis-because-no-sync-frames-for-video-track謝謝! – user1914692

0

您可以使用MediaMetadataRetriever.getFrameAtTime以從視頻文件中提取幀。從API級別10開始可用。

+0

我以前試過媒體元檢索器,但我需要解碼300幀的1920x1080,所以它需要我很長時間。 – Itay

+1

該調用存在從視頻流中提取單個縮略圖。這並不意味着從視頻中提取所有幀。 – fadden

+0

是的,它可能不是,我只是沒有看到從OP的問題中的視頻中提取'全部'(或300)幀的請求... – jpm