2013-01-07 78 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,所有投注都将关闭。如果在未来的操作系统升级中“隐藏”软件包将被更改/修改,则会导致产品崩溃。在生产环境中,这种方法是一种破坏行为,但对于为个人/学术用途开发的应用程序,这可能是您的事。

注:我没有亲自试过这个,但面临着类似的问题对你(我的答案是一些其他的隐藏包裹),当发现某个时候回来。