Android 无法使用前置摄像头录制视频,MediaRecorder 启动失败:-19

2024-01-10

我有两个不同的代码库有同样的问题。

第一个是直接从developer.android.com 复制的代码: http://developer.android.com/guide/topics/media/camera.html#custom-camera http://developer.android.com/guide/topics/media/camera.html#custom-camera

第二个是这段代码:

http://android-er.blogspot.com.au/2011/10/simple-exercise-of-video-capture-using.html http://android-er.blogspot.com.au/2011/10/simple-exercise-of-video-capture-using.html

两者都可以与普通后置摄像头配合使用,但一旦我尝试使用前置摄像头,就会出现错误。

这种情况发生在以下设备上:

  • Nexus S 4.1.2

  • 银河 Nexus 4.1.2

  • Nexus 7 4.2.1(只有前置摄像头)

我也尝试过看起来像 2.2 时代的相机参数,有些人声称某些三星和 HTC 设备需要这些参数,尽管多篇不同的文章引用了不同的字符串键:

c = Camera.open(frontFacingCameraID); // attempt to get a Camera instance
Camera.Parameters params = c.getParameters();
params.set("cam-mode", 1);
params.set("cam_mode", 1);
params.set("camera-id", 1);
c.setParameters(params);

这些都不起作用,另请注意,我正在检测正确的前置摄像头 ID,在 Nexus 7 上当然是:0。但所有设备上的结果都是相同的。

我尝试过使用低质量配置文件,我尝试过以多种方式手动设置视频分辨率、编码器、输出格式、比特率、帧速率和视频大小,但没有一个有效。

让我认为大多数代码都没有问题的是普通相机工作正常。所以我的猜测是它与设置媒体记录器的prepareVideoRecorder()/prepareMediaRecorder()方法有关。

也许已知可在前置摄像头上使用的媒体记录器手动编码设置?

我不得不说,Android Camera 和 MediaRecorder API 很糟糕。与 iOS 相比,它有点混乱,更不用说一些看起来可怕的参数不兼容问题以及分散的设备环境中的不同分辨率。

假设我可以让它在我的 JB 设备上运行,有谁根据经验知道这些问题是否可以通过 API 15 ICS 解决?

如果 API 10 Gingerbread 太难支持,我会考虑不支持它。


我今天也为这个问题苦苦挣扎了一会儿。

首先,确保您的权限设置正确。具体来说,要录制视频,您需要:

<uses-feature android:name="android.hardware.camera.front" />
<uses-feature android:name="android.hardware.microphone"/>

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

其次,这是棘手的部分,教程中的这行代码不适用于前置摄像头!

mMediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));

CamcorderProfile.get() 的签名默认为后置摄像头的配置文件:

返回给定质量级别的设备上第一个后置摄像头的摄像机配置文件。如果 该设备没有后置摄像头,这将返回 null。

相反,使用http://developer.android.com/reference/android/media/CamcorderProfile.html#get(int,%20int) http://developer.android.com/reference/android/media/CamcorderProfile.html#get(int,%20int)。第一个参数是你打开的摄像头的id,具体来说就是前置摄像头。

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

Android 无法使用前置摄像头录制视频,MediaRecorder 启动失败:-19 的相关文章

  • GCM 向主题发送消息:TOO_MANY_TOPICS 错误

    以前 GCM 每个应用程序有 100 万个主题订阅的限制 我发现他们现在已经取消了这一限制 基于发布 订阅模型 主题消息支持 每个应用程序无限订阅 https developers google com cloud messaging to
  • 导航组件重复 NavArgs 的问题

    我有一个片段 class SomeFragment private val args by navArgs
  • 如何在 cv2.VideoWriter 中使用 FPS 参数?

    好的 所以我正在制作视频 我想确切地知道如何使用 FPS 参数 它是一个浮点数 所以我假设这是我想要的每帧之间的间隔 你能给个例子吗 我只想知道视频会如何随着 FPS 参数值的变化而变化 因为我制作的视频现在太快了 谢谢 确实只是这样 fr
  • 在自定义对象中创建时粘性服务不会重新启动

    我有一个具有绑定服务的单例对象 我希望它重新启动 当我从启动器启动应用程序时 单例对象将初始化并绑定到这个现有的服务实例 以下是在单例中创建和绑定服务的代码 public class MyState private static MySta
  • 如何从 SQLite 获取记录总数

    我正在尝试从 Sqlite DB 获取行的总数 以下是我想要做的代码片段 我不知道我在这里做错了什么 public static int getTotalCount Context context Cursor c null try c g
  • 共同的偏好不断消失

    我正在使用共享首选项来存储我的应用程序的登录凭据 除了一个用户之外 一切正常 一段时间后 共享偏好似乎会以某种方式重置或清除 我已针对该用户调整了我的应用程序 使其不再清除他的共享偏好设置 这样我就可以确定这不是我的应用程序的错 但即使在这
  • 如果我们使用后退按钮退出,为什么 Android 应用程序会重新启动?

    按住主页按钮并返回应用程序时 应用程序不会重新启动 为什么使用后退按钮会重新启动 如果我们使用后退按钮退出 有什么方法可以解决在不重新启动的情况下获取应用程序的问题吗 请帮忙 当您按下Home按钮 应用程序将暂停并保存当前状态 最后应用程序
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • 在意图过滤器中使用多个操作时的默认值

    尝试理解 Android 中的意图和操作并查看文档 http developer android com guide topics intents intents filters html 但我一直看到的一件事是定义了多个操作的意图过滤器
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • Android 版 Robotium - solo.searchText () 不起作用

    我在使用 Robotium 时遇到 searchText 函数问题 我正在寻找这个字符串
  • 在 Jetpack Compose 中启动动画矢量 Drawable

    我有一个动画矢量可绘制R drawable my anim 我想在 Jetpack Compose 中展示并开始 可绘制对象显示 渲染正确 但动画未启动 这是撰写视图 Composable fun SplashView Surface mo
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • Android Webview 图像未加载

    我制作了一个简单的应用程序WebView 但有些图片无法加载 正确 在我的电脑上 错误 在模拟器中 Correct 错误 没有横幅 于是我用Chrome debug进行调试 发现我的代码被改变了 我不添加像noscript or style
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 通过 ADB 拔出设备:“找不到服务”

    我必须测试我的应用程序在打瞌睡模式下的行为 根据文档 https developer android com training monitoring device state doze standby html testing doze 我
  • 无法运行我的应用程序,要求选择 Android SDK

    今天我已经安装了Android Studio 金丝雀 1 现在我无法运行我的应用程序 将出现以下对话框 我已经通过 文件 gt 项目结构 gt Android SDK 位置 设置了正确的 SDK 位置 期待您的帮助来解决这个问题 警告对话框

随机推荐

  • 如何根据R中行之间的日期差异过滤行?

    每个内id 我想保留至少相隔 91 天的行 在我的数据框中df below id 1有 5 行并且id 2有 1 行 For id 1 我想只保留第一 第三和第五行 这是因为如果我们比较第一个日期和第二个日期 它们相差 32 天 因此 删除
  • 将属性添加到类型而不是类型实例的隐式转换

    我正在阅读一些较旧的 Scala 帖子 以更好地理解类型类 然后我运行了 穿过this one https stackoverflow com questions 8524878 implicit conversion vs type cl
  • 在 HTML 中调用 Google Apps 脚本函数

    我担任一支运动队的教练并为其建立了一个网站 我想在管理页面添加一个按钮 单击该按钮即可快速向团队中的每个人发送电子邮件 这封电子邮件的内容如下 今天的日程安排已更改 请访问网站了解更多信息 我确信通过 Outlook 中的通讯组列表或其他东
  • Android:PhoneLookup 的目录数据提供程序

    我正在编写一个自定义 Android 联系人目录 我已经实现了 ContactsContract Directory 提供程序 并且从手机应用程序中进行搜索工作正常 我现在面临的问题是 当我有来电 去电时 Android 拨号器不会查询我注
  • 使用 pywinauto 检查复选框不起作用

    我从 pip 安装了最后一个 pywinauto 模块 我不知道如何使用 Check UnCheck GetCheckState 方法 这是我非常简单的代码示例 from pywinauto import application Start
  • 测试 numpy 数组中的每个元素是否位于两个值之间的简单方法?

    我想知道是否有一种语法上简单的方法来检查 numpy 数组中的每个元素是否位于两个数字之间 换句话说 就像numpy array 1 2 3 4 5 lt 5将返回array True True True True False 我想知道是否
  • antlr 文字字符串匹配:我做错了什么?

    我已经使用antlr 3天了 我可以解析表达式 编写侦听器 解释解析树 这是梦想成真 但后来我尝试匹配文字字符串 foo 但失败了 我可以找到很多声称可以做到这一点的例子 我都试过了 所以我创建了一个小项目来匹配文字字符串 我一定是在做一些
  • C#:如何将DLL嵌入到资源文件中(程序目录中没有DLL副本)

    我有一个需要 X dll 的 C 应用程序 项目 A 我已经将生成X dll的项目添加到A中作为Visual Studio中的参考 我还将 X dll 的发布版本作为二进制文件添加到 A 中的资源文件中 我已经告诉A项目了not将 X dl
  • 在 R 中合并列

    我想使用 R 将数据框的两列合并为一长列 下面有一个可重现的数据 data lt data frame x c 4 5 6 7 7 7 y c 3 4 5 6 7 7 data x y 1 4 3 2 5 4 3 6 5 4 7 6 5 7
  • Waypoint npm - 错误:无法解析“waypoint”

    我有一个 vue 项目并安装了 waypoints npm install waypoints 我尝试导入它 import waypoint from waypoints 但出现错误 错误 无法解析 Mypath 中的 路径点 我究竟做错了
  • 我需要服务器向所有客户端发送消息(Python、套接字)

    这是我的服务器程序 它如何将从每个客户端接收到的数据发送到每个其他客户端 import socket import os from threading import Thread import thread def listener cli
  • '#' 在 Mocha 中有特殊含义吗?

    describe indexOf it doSth 在 Mocha 中有特殊含义吗 什么是describe and it实际上呢 抱歉 没有找到相关文档describe and it describe and it遵循一种称为BDD 意思是
  • 使用 Zend 框架 2 未在 JSON 中呈现 404 HTTP 错误

    我正在使用 zend Framework2 创建一个简单的 Restful api 并且我参考了 Rob Allen 关于该主题的注释以及 http hounddog github com blog getting started with
  • 使用 C# 枚举 Excel 工作簿中单元格的有效方法

    枚举工作簿中每个工作表中的每个单元格的最有效方法是什么 对于包含约 130 000 个单元格的工作簿 下面的方法似乎相当有效 在我的机器上 打开文件大约需要 26 秒 枚举单元大约需要 5 秒 不过 我不是 Excel 专家 并且希望与更广
  • WebAPI 控制器中的 MVC 路由

    关于 MVC 和 WebAPI 中的路由的快速问题 我在路由config cs中添加了一条路由 routes MapRoute name ConfirmEmail url ConfirmEmail userid defaults new c
  • App Engine Cloud Trace 是否需要 AppState?

    谷歌的应用程序引擎已经升级了他们的开发者控制台 它包括一个名为云踪迹 https cloud google com tools cloud trace 这是改进版吗AppStats https cloud google com appeng
  • 使用 Django 在用户注册时填写用户个人资料

    我正在开发一个应用程序 使用 Django 提供的用户默认身份验证 以及django registration redux 同样在文档中 他们建议将用户配置文件链接到OneToOneField在不同的模型中 如下解释 https docs
  • Groovy 家长/孩子私人领域访问奇怪与关闭

    在 Groovy 中 我有一个父类和一个子类 其中父类的构造函数尝试使用闭包设置父类字段的值 如以下代码所示 try def x new ChildClass catch ex ex printStackTrace System err c
  • 如何在 CLion 中正确设置环境变量 TERM

    在 OSX 上使用 CLion 我正在创建一个简单的控制台应用程序 我想在其中执行system clear 当我在 OSX 终端中运行该应用程序时 它可以正常工作 当我使用 CLion 终端运行它时 system clear 失败并显示消息
  • Android 无法使用前置摄像头录制视频,MediaRecorder 启动失败:-19

    我有两个不同的代码库有同样的问题 第一个是直接从developer android com 复制的代码 http developer android com guide topics media camera html custom cam