9

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

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

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

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

4

2 回答 2

7

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

您不能在应用程序中使用它,并且正如您所见,该 API 不存在于包含可用公共 API 的 android.jar 中。仅供参考,包的 javadoc 可以在这里看到。

要向您的应用程序添加媒体功能,请改用android.media 包,它:

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

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

包中的其他特殊类提供了在位图中检测人脸的能力(FaceDetector),控制音频路由(到设备或耳机)和控制警报,如铃声和电话振动(AudioManager)。

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

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

在此处输入图像描述

于 2013-03-07T10:03:38.197 回答
0

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

解决这个问题并不容易。但是,您可以尝试本教程http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-2-hacking-around/

本教程解释了如何从设备中提取“完整”的 android.jar,以便您可以在编译时获取隐藏的包。一旦你在编译时有了“隐藏”的包,你就可以用它们来构建你的应用程序。这听起来像是灵丹妙药,但它有很大的缺点。一旦你使用了非标准的 API,所有的赌注都没有了。如果在未来的操作系统升级中更改/修改“隐藏”包,它会破坏您的产品。在生产环境中,这种方法会破坏交易,但对于为个人/学术用途开发的应用程序,它可能是你的事。

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

于 2013-03-07T12:01:13.160 回答