【问题标题】:Android video editor classesAndroid 视频编辑器类
【发布时间】:2012-12-21 06:56:09
【问题描述】:

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

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

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

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

【问题讨论】:

  • 嘿,有什么解决办法吗?
  • @Subra 看我的回答。
  • 我就此事联系了 Google 的某个人,并被告知使用 MediaCodec 代替我想做的事情。 videoeditor 包是隐藏的,因为它不打算使用。我最终使用 MediaCodec 和 ffmpeg 来解决我的问题,因为 Android 媒体包并没有完全满足我的需要。

标签: android java-native-interface


【解决方案1】:

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-bundle-linux/sdk/platforms/android-17/android.jar)

【讨论】:

【解决方案2】:

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

对此没有简单的解决方法。不过你可以试试这个教程http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-2-hacking-around/

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

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

【讨论】:

    猜你喜欢
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    相关资源
    最近更新 更多