Android MediaRecorder录制Surface(不是Camera)

Gyo*_*ome 7 video java-native-interface android mediarecorder

我正在看Android SDK的MediaRecorder类,我想知道它是否可以用来录制一个Surface制作的视频.示例:我想将我在表面上显示的内容(视频游戏?)记录到文件中.正如我在标题中所说:我不打算从相机中录制任何内容.

我认为通过覆盖大部分课程是可能的,但我非常喜欢一些想法......除此之外,我不确定在MediaRecorder中如何使用Camera类,以及我应该从Surface中获取什么来替换它.

感谢您的关注!

PS:我正在查看使用我的MediaRecorder的本机代码有一些线索,也许它会激发其他人:http: //www.netmite.com/android/mydroid/frameworks/base/media/jni/

mat*_*der 5

Android Lollipop 中添加了从 Surface 录制的功能。这是文档:

http://developer.android.com/about/versions/android-5.0.html#ScreenCapture


Edd*_*ala 1

不幸的是,这在 Java 层是不可能的。相机和媒体记录器之间的所有通信都发生在本机代码层中,并且无法将非相机数据注入该管道中。

虽然 Android 4.1 添加了媒体编解码器 API,允许访问设备的视频编码器,但没有易于使用的方法来获取生成的编码流并将其保存为标准视频文件。您必须找到一个库来执行此操作或自己编写一个库。