如何使用setCamera(MediaRecorder)?

2024-02-14

根据Android SDK,MediaRecorder.setCamera可以用于回收现有的相机实例进行视频捕获和预览,而无需重置预览。我无法找到任何示例,并且我所有的尝试都是徒劳的:我要么得到错误的状态异常,要么 MediaRecorder.prepare 失败。

  • 有谁知道这个方法是否可用?
  • 那我该如何使用它呢?
  • 网上有可用的示例吗?

以供参考:http://developer.android.com/reference/android/media/MediaRecorder.html#setCamera(android.hardware.Camera) http://developer.android.com/reference/android/media/MediaRecorder.html#setCamera(android.hardware.Camera)


我遇到了同样的问题并发现了它是如何工作的。有些事情必须正确完成。首先,您应该检查状态图安卓文档 http://developer.android.com/reference/android/media/MediaRecorder.html#setProfile%28android.media.CamcorderProfile%29.

命令的工作顺序如下。

mCamera = Camera.open();
rec = new MediaRecorder();                               // state "Initial"

mCamera.lock();
mCamera.unlock();

rec.setCamera(mCamera);                                  // state still "Initial"
rec.setVideoSource(MediaRecorder.VideoSource.CAMERA);    // state "Initialized"
rec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);  // state "DataSourceConfigured"
rec.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

rec.setPreviewDisplay(surfaceHolder.getSurface());

rec.setOutputFile(Environment.getExternalStorageDirectory() + "/test.mp4");

rec.prepare();                                           // state "Prepared"
rec.start();                                             // state "Recording"

// ...

rec.stop();                                              // state "Initial"

可以找到完整的示例here http://android-chirag.blogspot.de/2012/06/video-recording-example-in-android.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用setCamera(MediaRecorder)? 的相关文章

随机推荐

  • 在服务器上运行 R 时,如何从 emacs ess 启动 x-window?

    我按照 ess 手册中的说明将 emacs snapshot 与 ssh el 包一起使用 有几种方法可以打开 R 会话 但我是这样做的 打开 emacs C x C f server dir file R 这使我进入 ESS S 模式 输
  • Python Gui 编程和 CPU 使用。如何创建“空闲”或“节流”,以便一段代码不会消耗 100 个可用 CPU?

    当一个朋友正在测试我制作的 GUI 时 我收到了关于运行缓慢的投诉 果然 查看 Xp 的性能监视器 它完全开放地运行 消耗了尽可能多的 cpu 经过对 stackoverflow 的一些挖掘 这似乎是正常的预期行为 我的问题是 有没有办法限
  • 如何在os.system中使用python变量? [复制]

    这个问题在这里已经有答案了 我正在用Python创建小型控制台脚本 我想在其中放入cowsay命令 但是cow说变量的名称 字符串所在的位置 而不是变量内的字符串 我怎样才能让牛说出变量中的字符串 if command cow word r
  • 如何在java中更快地计算sha256?

    我发现在java中计算sha256很慢 例如 它比python慢 我编写了两个简单的基准测试来计算 1GB 零的 sha256 在这两种情况下 结果是相同且正确的 但 python 时间为 5653ms java 时间为 8623ms 慢了
  • 在 SQL Server 中删除具有默认约束的列(IF EXISTS)

    我正在编写一个用于删除列和默认约束的 SQL 脚本 以下脚本工作正常 但我想知道这是否是正确的方法 我可以在一个语句中删除带有列的默认约束 而不是使用两个单独的约束吗 IF EXISTS SELECT FROM dbo sysobjects
  • 将 NSUserDefaults 转换为钥匙串?

    所以 NSUserDefaults 非常容易使用 但显然 它不太安全 没有加密 当然 客户希望应用程序首选项是安全的 因为它包含敏感数据 但钥匙串是安全的 尽管很难编码 显然 那么有没有一种方法可以轻松地将 NSUserDefaults 代
  • tslint 更新错误“找不到模块 'tslint/lib/lint'”

    我们最近将 Angular 2 项目升级为 angular cli1 0版本 我们还升级了tslint from 2 x to 5 x 现在我们收到以下信息tslint设计时出错 在 VSCode 输出终端中 验证时找不到模块 tslint
  • 无法将 django 模型导入到 celery 任务中

    我有以下任务 from future import absolute import from myproject celery import app from myapp models import Entity app task def
  • vue 3打字稿未捕获(承诺中)TypeError:this.$on不是一个函数

    我安装了一个新的 Vue 3 其中包含 vue cli 和 typescript 一切都在运行 但是当我添加一个https vue select org https vue select org 包裹 我在浏览器控制台上收到此错误 Unca
  • 如何在 Node.js 中等待异步请求循环完成?

    我想在 node js 中发出多个请求来获取几个外部 API 响应 并将它们合并到一个数组中 我正在使用 for 循环来实现此目的 这是我的代码 res setHeader Content Type application json con
  • 如何在 Angular 2 中打印 PDF

    我有 pdf 文件的 URL exa url 是 test example com incoice 1 download auth token some token 当我访问此 url 时 该 url 将在浏览器中显示 PDF 现在我想用打
  • 如何使用 Bresenham 创建任意粗细的线?

    我目前正在使用 Bresenham 的算法来绘制线条 但它们的厚度 当然 是一个像素 我的问题是绘制任意粗细的线条最有效的方法是什么 我使用的语言是C 再取一个 Bresenham 循环 并用它来修改原始线在矩形方向上的起始和结束位置 问题
  • 如何提高 Java 中收据打印机和 ESC/POS 命令的速度

    我有一个用 Java 与热敏打印机通信的应用程序 使热敏打印机使用 Star tsp 100 打印机打印带有条形码 强调 不同尺寸等的收据 我可以让程序打印出我喜欢的内容 但是打印机速度很慢 我相信原因是我使用了非首选的方式 方法发送字节命
  • 在 ASP.Net MVC 中管理 MongoDB 连接的正确方法是什么?

    管理 MongoServer 类生命周期的最佳实践是什么 我应该创建一个并在每个请求结束时关闭它 还是应该使用 StructureMap 之类的东西在应用程序的整个生命周期中将其保留为单例 任何帮助都是值得赞赏的 In 官方文档 http
  • 如何对行组上的 SSRS 矩阵列求和

    我有一份报告 显示一个人为他们分配到的每个项目工作的总小时数 按月汇总 我想在 SSRS 2008 R2 中计算每个人每个月的总小时数 因此 例如 我有以下数据 并希望像这样列出总计 January February March Worke
  • 为什么在预提交挂钩中执行 git add 后索引没有更新?

    我有一个预提交钩子 检查我的版本文件是否需要更新 修改所述文件 对此文件执行 git add 这允许我将更新的版本文件添加到同一提交中 我遇到的唯一问题是 在钩子运行后 工作树和 HEAD 会使用新版本文件进行更新 但索引不会 我需要手动暂
  • Firebase 推送通知在某些设备上无法正常工作

    对于推送通知 我使用 FCM 我在 VIVO V3 手机中遇到一些问题 相同的代码适用于其他设备 黑莓 华为 三星 适用于以下所有场景我已经测试了 3 个场景 当应用程序位于前台时 当应用程序处于后台时 当应用程序完全杀死时 前 2 个条件
  • ConsoleAppender 实例化不起作用:具有私有访问权限

    我的 ConsoleAppender 类实例化不起作用 import org apache logging log4j core appender ConsoleAppender public class Application priva
  • 如何在 PHP 中将 PDF 版本 1.5 转换为版本 1.4

    如何在 PHP 中将 PDF 版本 1 5 转换为版本 1 4 有人能指出我正确的方向吗 我有类似的需求 发现Ghostscript可以修改PDF版本 文档在这里 http ghostscript com doc current Use h
  • 如何使用setCamera(MediaRecorder)?

    根据Android SDK MediaRecorder setCamera可以用于回收现有的相机实例进行视频捕获和预览 而无需重置预览 我无法找到任何示例 并且我所有的尝试都是徒劳的 我要么得到错误的状态异常 要么 MediaRecorde