我正在尝试创建一个Android视频编辑应用程序。我注意到在SDK源代码中,'android.media.videoeditor'包中有许多类似乎可以满足我的需求;但是,当我尝试将它们导入我的Java项目时,我不能,因为根据Eclipse它们不存在!我检查了'android.jar'的内容,果然,这些类缺失了。
该软件包中的一个类 - MediaArtistNativeHelper.java - 使用JNI调用它需要的任何本机方法,这些方法是用C ++实现的(这是否意味着我需要单独构建它们?)
我的问题是,如何在项目中使用这些类?
我正在Mac上使用Eclipse开发应用程序。
答案 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)
答案 1 :(得分:0)
在编译时无法访问内部和隐藏包,因为android sdk没有它们。
没有简单的解决方法。但是,您可以尝试本教程http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-2-hacking-around/
本教程介绍如何从设备中提取“完整”android.jar,以便在编译期间获取隐藏的包。在编译时获得“隐藏”包后,您可以使用这些包构建应用程序。这可能听起来像银弹,但它有很大的缺点。一旦您使用非标准API,所有投注都将被取消。如果在将来的操作系统升级中更改/修改“隐藏”软件包,则会破坏您的产品。在生产环境中,这种方法是一种交易破坏者,但对于为个人/学术用途而开发的应用程序,它可能是你的事情。
注意:我没有亲自试过这个,但是在遇到类似问题的时候发现它(我的答案是在其他一些隐藏的软件包中)。