android - 在不写入文件的情况下将视频录制到字节数组

标签 android video camera bytearray mediarecorder

我正在使用 Google Developer API Guide 实现自定义摄像机;它使用 MediaRecorder类来创建和管理摄像机的所有设置/操作。

除了将文件写入手机所花费的时间太长这一事实(录制后,我什至需要大约 5 分钟才能在图库 下看到该文件),它正常工作。

但我不想要一个文件:我需要记录生成的原始字节数组,然后再将其转储到文件中。

是否MediaRecorder甚至允许你这样做?我的方向正确吗?

我需要的一个很好的例子是 PictureCallbackonPictureTaken()方法为您提供一个字节数组,其中包含以字节为单位的图片。

最佳答案

MediaRecorder 旨在变得简单:告诉它输入的来源,给它一个要写入的文件,然后让它运行。

如果你想要更灵活的东西,你需要使用MediaCodec。直到 API 18 (Android 4.3),您想要的功能集才真正存在。

Grafika包括“连续捕获” Activity ,它将 H.264 视频记录到内存中的循环缓冲区,并在您点击“捕获”时将当前帧集写入文件。这只是视频;如果您需要音频,则需要单独处理。

对于早期版本的 Android,您需要使用 ffmpeg 等第 3 方库来处理视频编码,这会显着降低帧速率。

关于android - 在不写入文件的情况下将视频录制到字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22965817/

相关文章:

multithreading - 如何使用 x264 编码器库计算优化的并行运行编码作业数量

android - 上面有透明图像的相机预览

java - 使用 Theme.Light.NoTitleBar 显示 Light AlertDialog

android - 包android.support.design.widget不存在

java - android:使用包安装程序以编程方式安装应用程序

java - Android TTS如何在textview中显示说话的单词

javascript - 播放视频元素不流畅

java - 用java播放视频

javascript - 使用网络摄像头捕获个人资料图片并在 Canvas 中显示图片

Android相机 Intent 返回空...有时