我正在使用Google Developer API Guide实现自定义摄像机;它使用MediaRecorder
类创建和管理摄像机的所有设置/操作.
除了将文件写入手机花费的时间太长(录音后,大约需要5分钟,我什至无法在Gallery下看到文件)这一事实之外,它都可以正常工作.
但是我不需要文件:在将记录转储到文件中之前,我需要记录产生的原始字节数组.
MediaRecorder
甚至允许您这样做吗?我的方向正确吗?
我需要的一个很好的例子是PictureCallback的onPictureTaken()
方法如何为您提供一个字节数组,其中包含以字节为单位的图片.
解决方法:
MediaRecorder的目的很简单:告诉它输入的来源,给它一个要写入的文件,然后让它运行.
如果您想要更灵活的东西,则需要使用MediaCodec.直到API 18(Android 4.3)才真正存在您想要的功能集.
Grafika包含“连续捕获”活动,该活动将H.264视频记录到内存中的循环缓冲区中,并在您单击“捕获”时将当前的一组帧写入文件中.这仅是视频;如果您想要音频,则需要单独处理.
对于早期版本的Android,您需要使用ffmpeg之类的第三方库来处理视频编码,这将大大降低您的帧频.