Android视频编辑类

9
我正在尝试创建一个Android视频编辑应用程序。我注意到在SDK源代码中有许多位于“android.media.videoeditor”包中的类似于我所需内容的类; 但是,当我尝试将它们导入我的Java项目时,无法进行导入,因为根据Eclipse的说法,它们不存在!我检查了“android.jar”的内容,确实缺少这些类。
该包中的一个类 - MediaArtistNativeHelper.java - 使用JNI调用任何需要的本地方法,据我所知,这些方法是用C ++实现的(这是否意味着我需要单独构建它们?)
我的问题是,我如何在我的项目中使用这些类?
我正在Mac上使用Eclipse开发应用程序。

嘿,有解决方案吗? - LOG_TAG
1
我联系了谷歌的某个人,被告知应该使用MediaCodec来实现我想要做的事情。videoeditor包是隐藏的,因为它不是用来使用的。最终,我使用MediaCodec和ffmpeg解决了我的问题,因为Android媒体包没有完全满足我的需求。 - Simon
2个回答

7

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

你不能在应用程序中使用它,并且正如你所看到的 API 在 android.jar 中也不存在,该文件包含了可用的公共 API。 FYI 该包的 javadoc 可以在 这里 查看。

要向应用程序添加媒体功能,请改用 android.media package,它具有以下特点:

提供管理音频和视频等多媒体接口的类。 媒体 API 用于播放和有些情况下录制媒体文件。这包括音频(例如,播放 MP3 或其他音乐文件、铃声、游戏音效或 DTMF 音调)和视频(例如,播放从网络流式传输或本地存储的视频)。 包中的其他特殊类提供了检测位图中人脸(FaceDetector)、控制音频路由(到设备或耳机)以及控制提示音(如铃声)和手机振动(AudioManager)的功能。 android.jar 的内容显示 android.media 包含的内容:

enter image description here


谢谢,但是如何使用可用的MediaRecorder类通过https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/media/java/android/media/videoeditor/OverlayFrame.java呢? - LOG_TAG
1
@Subra 请查看android.media包的文档或获取platform/frameworks/base的源代码,查看android.media.videoeditor包中的内容在哪些类中被使用。 - Alex Bitek

0

由于Android SDK没有这些包,因此在编译时无法访问内部和隐藏的包。

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

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

注意:我个人没有尝试过这个方法,但在面对类似问题时(我的答案在其他隐藏包中),我在一段时间前找到了它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接