Android视频编辑器类

时间:2013-01-07 14:18:28

标签: android java-native-interface

我正在尝试创建一个Android视频编辑应用程序。我注意到在SDK源代码中,'android.media.videoeditor'包中有许多类似乎可以满足我的需求;但是,当我尝试将它们导入我的Java项目时,我不能,因为根据Eclipse它们不存在!我检查了'android.jar'的内容,果然,这些类缺失了。

该软件包中的一个类 - MediaArtistNativeHelper.java - 使用JNI调用它需要的任何本机方法,这些方法是用C ++实现的(这是否意味着我需要单独构建它们?)

我的问题是,如何在项目中使用这些类?

我正在Mac上使用Eclipse开发应用程序。

2 个答案:

答案 0 :(得分:7)

android.media.videoeditor包是一个内部/隐藏包,因为它的类/接口上面的Javadoc包含{@hide}或@hide注释。

您不能在应用程序中使用它,因为您看到android.jar中不包含API,其中包含可用的公共API。 我们可以看到包的javadoc here

要向您的应用添加媒体功能,请改用android.media package,其中:

  

提供管理音频和音频中各种媒体接口的类   视频。

     

媒体API用于播放,在某些情况下还用于播放记录媒体   文件。这包括音频(例如,播放MP3或其他音乐文件,   铃声,游戏音效或DTMF音调)和视频(例如,播放   通过网络或本地存储流式传输的视频。

     

包中的其他特殊类提供了检测的能力   Bitmaps(FaceDetector)中的人脸,控制音频路由(到   设备或耳机)和控制铃声和铃声等警报   手机震动(AudioManager)。

android.jar的内容显示了android.media包中包含的内容:

(取自adt-bundle-linux / sdk / platforms / android-17 /android.jar)

enter image description here

答案 1 :(得分:0)

在编译时无法访问内部和隐藏包,因为android sdk没有它们。

没有简单的解决方法。但是,您可以尝试本教程http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-2-hacking-around/

本教程介绍如何从设备中提取“完整”android.jar,以便在编译期间获取隐藏的包。在编译时获得“隐藏”包后,您可以使用这些包构建应用程序。这可能听起来像银弹,但它有很大的缺点。一旦您使用非标准API,所有投注都将被取消。如果在将来的操作系统升级中更改/修改“隐藏”软件包,则会破坏您的产品。在生产环境中,这种方法是一种交易破坏者,但对于为个人/学术用途而开发的应用程序,它可能是你的事情。

注意:我没有亲自试过这个,但是在遇到类似问题的时候发现它(我的答案是在其他一些隐藏的软件包中)。