2013-01-07 87 views
9

我想創建一個Android視頻編輯應用程序。我注意到SDK資源中包含'android.media.videoeditor'包中的許多類,這些類看起來像我所需要的;然而,當我嘗試將它們導入到我的Java項目中時,我無法這樣做,因爲根據Eclipse它們不存在!我檢查了'android.jar'的內容,果然,這些類缺失。Android視頻編輯類

該包中的一個類 - MediaArtistNativeHelper.java - 使用JNI調出它需要的任何本機方法,這些方法都是用C++實現的,這是否意味着我需要單獨構建它們? )

我的問題是,我該如何在我的項目中使用這些類?

我正在開發在Mac上使用Eclipse的應用程序。

+0

嘿,有什麼解決辦法嗎? –

+0

@Subra查看我的回答。 – bitek

+1

我聯繫了谷歌有關此事的人,並被告知使用MediaCodec代替我正在嘗試做的事情。 videoeditor軟件包是隱藏的,因爲它不打算使用。我最終使用MediaCodec和ffmpeg解決了我的問題,因爲Android媒體軟件包沒有按照我的需要進行。 – Simon

回答

7

android.media.videoeditor軟件包是內部/隱藏軟件包,因爲其上的類/接口上方的Javadoc包含{@hide}或@hide註釋。

您不允許在您的應用程序中使用它,因爲您看到API不存在於包含公共API可用的android.jar中。 僅供參考包的javadoc可以看到here

爲了增加媒體功能,您的應用程序中使用android.media package代替,其中:

提供管理音頻和視頻 各種媒體接口的類。

媒體API用於播放和在某些情況下記錄媒體 文件。這包括音頻(例如,播放MP3或其他音樂文件, 鈴聲,遊戲聲音效果或DTMF音調)和視頻(例如,播放通過網絡或從本地存儲器流傳輸的視頻的 )。

其他特殊類的封裝提供檢測 面孔的人在位圖(FaceDetector),控制音頻路由(到 設備或耳機)和控制的警報,如鈴聲和 手機振動(AudioManager的能力)。

表示什麼android.media包中包含的所述的android.jar的內容:

(從ADT-束Linux的採用/ SDK /平臺/ 機器人-17 /android.jar)

enter image description here

+0

謝謝,但如何通過使用可MediaRecorder類使用此https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/media/java/android/media/videoeditor/OverlayFrame.java ?? –

+1

@Subra檢查android.media包文檔或抓住的源代碼[平臺/框架/基](https://android.googlesource.com/platform/frameworks/base/),看看在哪些類的東西從機器人使用.media.videoeditor軟件包。 – bitek

0

因爲android sdk沒有它們,編譯時無法訪問內部和隱藏的包。

有沒有簡單的解決方法。不過你可以試試這個教程http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-2-hacking-around/

本教程解釋瞭如何從設備中提取「完整的」android.jar,以便在編譯期間獲得隱藏的包。一旦你在編譯時有了「隱藏」包,你可以用這些構建你的應用程序。這聽起來像是一顆銀彈,但它有很大的缺點。一旦使用非標準API,所有投注都將關閉。如果在未來的操作系統升級中「隱藏」軟件包將被更改/修改,則會導致產品崩潰。在生產環境中,這種方法是一種破壞行爲,但對於爲個人/學術用途開發的應用程序,這可能是您的事。

注:我沒有親自試過這個,但面臨着類似的問題對你(我的答案是一些其他的隱藏包裹),當發現某個時候回來。