android - 录制视频时保持预览回调?

标签 android camera android-mediarecorder

我目前正在使用 onPreviewCallback,因此我可以在预览时从相机捕获帧并通过 http 流式传输它们。

这行得通,但随后我发出了开始录制的命令,而且我似乎再也没有预览回调了。

那么,我该如何保留预览回调,以便既可以将帧从表面发送到我的服务器,又可以在设备上录制视频?

最佳答案

我已经有很长时间没有使用 Android Camera 了。然而,我记得

1) onPreviewCallback 在你录制的时候没有被调用

在几个问题中提到了它:

Camera onPreviewFrame not called How to show real time filtered camera preview while recording videos?

2) 我看到它是在 SipDroid 和其他几个 Android SIP 客户端中处理的(这是 1-2 年前的事了,所以这个方法可能已经过时了):

  • 管道已创建
  • 管道的接收套接字被包装在 FileDescriptor 中并传递给 MediaRecorder setOutputFile
  • 在线程中不断读取管道的发送套接字。
  • 通过这种方式您可以接收写入文件的内容
  • 现在,问题是如何处理内容(因为它是 H.263 或 H.264 编码的,如果您录制带有声音的视频,则可能会与声音混合)。
  • 有一些解析内容的启发式算法(但是,这很麻烦)

3) 您可以使用 onPreviewFrame + 启动 AudioRecorder 并自己将其编码(使用 ffmpeg 或类似的东西)到 mp4 文件。这样你就不需要启动 MediaRecorder 记录了。

关于android - 录制视频时保持预览回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16164195/

相关文章:

ios - 相机图像选择器和摇动手势?

android - 如何在 android 中播放 .opus 音频文件?

android - webview图像放大点击android

java - 打开相机后未调用 onActivityResult

android - 在 Android 上进行应用内更新。卡在某个循环中,你们可以帮助我吗?

android - 是否可以直接在 Android 中访问相机的 LED?

java - Android媒体录制错误启动失败-19 runTimeException

Android 屏幕录制操作方法 - 横向录制、录制的视频以全屏与部分屏幕播放

android - 使用 videoview 按下主页按钮后应用程序重新启动状态

android - ActionBar 中的主开/关开关