使用camera2 api在前置摄像头中进行全屏视频录制

2024-02-01

我已经被这个问题困扰好几天了。

我在 Kotlin 中遵循了 Android 的官方相机示例:android 的相机示例 https://github.com/android/camera-samples/tree/master/Camera2VideoKotlin

我在github上提出了一个问题issue https://github.com/android/camera-samples/issues/1682020年2月11日,但尚未收到任何反馈。

我的问题是:

我按原样使用了示例,仅进行了更改val cameraId = manager.cameraIdList[0] to val cameraId = manager.cameraIdList[1]用于前置摄像头。 注意:后置摄像头不会发生这种情况。

前置摄像头不工作并显示黑条 测试设备:

  • 模拟器:Pixel C API 29
  • 设备:Galaxy Tab S2
  • 模式:肖像

我想要全屏视图,所以当我不设置宽高比时AutoTextureView在下面的注释行中,视频全屏显示,但现在已拉伸。

if (resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {
  //I only have portrait mode
} else {
  //textureView.setAspectRatio(previewSize.height, previewSize.width)
} 

有没有办法设置全屏模式而不进行任何拉伸或以正确的宽高比?

我已经在松弛中经历了以下解决方案,但没有一个对我有用:

摄像头 2:无法全屏录制视频? https://stackoverflow.com/questions/37441252/camera-2-unable-to-record-video-in-full-screen

Camera2 API 使预览填充整个视图 https://stackoverflow.com/questions/41790052/camera2-api-make-preview-fill-entire-view

Android Camera2 API 拉伸预览 https://stackoverflow.com/questions/41752733/android-camera2-api-stretching-the-preview/44324039#44324039


工作了几天后。Camera2全屏预览和图像捕捉 https://stackoverflow.com/questions/41985926/camera2-full-screen-preview-and-image-capture帮助我解决了问题。

Setting onMeasure in AutoFitTextureView as:

override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec)
    val width = View.MeasureSpec.getSize(widthMeasureSpec)
    val height = View.MeasureSpec.getSize(heightMeasureSpec)
    if (ratioWidth == 0 || ratioHeight == 0) {
        setMeasuredDimension(width, height)
    } else {
        if (width > ((height * ratioWidth) / ratioHeight)) {
            setMeasuredDimension(width, (width * ratioHeight) / ratioWidth)
        } else {
            setMeasuredDimension((height * ratioWidth) / ratioHeight, height)
        }
    }
}

上面的代码使屏幕全尺寸但有预览问题 处于中心

所以我翻译如下configureTransform(viewWidth: Int, viewHeight: Int)

   // adjust the x and y to centre the preview
   val screenWidth = resources.displayMetrics.widthPixels
   val xShift = (viewWidth - screenWidth)/2

   val screenHeight = resources.displayMetrics.heightPixels
   val yShift = (viewHeight - screenHeight)/2
   matrix.setTranslate(-xShift.toFloat(), -yShift.toFloat())

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

使用camera2 api在前置摄像头中进行全屏视频录制 的相关文章

  • 移动网站 Facebook 使用 Facebook App 登录以获取登录详细信息

    使用网络浏览器 例如Android 上的 Chrome 如果移动网站要求用户登录 Facebook 而用户没有登录 则即使手机可能通过 Facebook 本机应用程序登录 Facebook 浏览器也会要求用户提供登录详细信息 有没有什么方法
  • Android 滚动分页

    Android 操作系统有可以实现滚动分页的功能吗 Edit滚动分页是指像主屏幕上一样的分页 您可以左右滑动并转到下一页或上一页 您可以在 android git kernel org 上查看 Launcher 的源代码作为示例 查找名为
  • 有没有办法有一个屏蔽数字输入字段?

    我正在 Android 上创建一个 HTML5 应用程序 对于这个特定场景 我们有一个用于信用卡安全代码的输入字段 我们希望强制输入字段仅包含数字并被屏蔽 我没有运气搜索这个特定的案例 从我自己研究 尝试中可以看出 这不能纯粹通过 HTML
  • 创建后如何更新使用 AlertDialog.builder 构建的 AlertDialog 列表中的项目数组

    我使用 AlertDialog builder 创建了一个对话框 显示可以检查的多项选择列表 我设置了初始的项目名称集及其检查状态 builder setMultiChoiceItems saveTargets names saveTarg
  • 如何知道哪个用户正在尝试登录?

    用户是使用电子邮件和密码创建的 这就是我进行注册的方式 mSignup setOnClickListener new View OnClickListener Override public void onClick View v mEma
  • 如何在Android中使用QML - QWebView

    我想在 Android 中部署一个 YouTube 应用程序 但它只能在我的电脑上运行 在安卓上不起作用 它不加载任何视频 问题仅出在 QWebView 上 我使用了与此类似的代码 http doc qt io archives qt 5
  • Android - 如何在 ListView 的背景上显示垂直线(并根据行高)?

    如何在背景上显示一条垂直线 如下图蓝色突出显示的那条 在此示例中 我有一个带有 ImageView 元素的 ListView 和 TextView 但它与线条无关 并且我希望这些项目的背景上有一条垂直线 让人感觉它们与每个项目 连接 另请注
  • Firebase 云消息传递 - 目标到 Firebase 控制台中不可见的单个设备

    我正在尝试向 android 中的单个设备发送通知 但是当我从 Firebase 控制台执行此操作时 它在 Firebase 新视图中不可见 谁能帮助我从哪里向单个设备发送通知 仔细尝试以下步骤 Tap 新通知 Fill up 通知标题 可
  • 如何计算android中位图擦除区域的百分比?

    我是安卓新手 我正在制作一个可以使用手指擦除画布上的位图的应用程序 像手指画橡皮擦之类的东西 我想计算擦除区域的百分比 例如 60 已从完整图像中擦除 请帮助我做到这一点 提前致谢 我尝试了一些方法 它总是给我 0 它不起作用 请参阅该方法
  • overridePendingTransition 显示第二个活动的速度太快

    我有 2 个活动 我想在两个活动之间创建一个动画过渡 以便两个活动的视图向上滑动 就好像第二个活动正在向上推动第一个活动一样 在我的第一个活动中我使用 Intent iSecondActivity new Intent FirstActiv
  • 在路径上找不到类:DexPathList?

    当我在 android studio 中使用 USB 在真实设备中测试时 我的应用程序工作正常 但是当我将 apk 发送到另一台设备并在那里安装时 它无法工作 应用程序崩溃了 我没有找到任何正确的方法来解决问题 错误如下 FATAL EXC
  • Gradle 构建无法解析生成的类

    我刚刚将 Android Studio 从 1 5 更新到 2 2 1 Gradle 也是如此 我有一个项目 它使用注释处理器框架 由我制作 来执行类似 Dagger 的依赖注入 这在更新之前工作得很好 但现在 Gradle 无法解析生成的
  • 尝试使用 Facebook ID 获取 Facebook 图像时获取空位图

    这是我正在使用的代码 String imageURL Bitmap bitmap null imageURL http graph facebook com fbID picture type try bitmap BitmapFactor
  • 防止滚动时自定义 ListView 刷新。我想停止刷新

    我在我的 Android 应用程序中使用自定义 ListView 问题是当我滚动 ListView 时 它会自动清除从 EditText Edittext 作为 list item 输入的数据 并且 ListView 刷新 我想阻止它停止清
  • 如何在java中从包含.0的浮点数中删除小数部分

    我只想删除包含的浮点数的小数部分 0 所有其他数字都是可以接受的 例如 I P 1 0 2 2 88 0 3 56666 4 1 45 00 99 560 O P 1 2 2 88 3 567 4 1 45 99 560 有什么方法可以做到
  • 如何在Android 11中获取dir文件列表

    我想编写自己的精简版文件浏览器 文件 API 现在不适用于外部存储 该版本还提供了对范围存储的改进 这使得开发人员可以更轻松地迁移到使用此存储模型 我不明白如何使用范围存储来访问 sdcard 如果您正在寻找文件选择器体验 存储访问框架 h
  • 安卓浮动键盘

    是否可以通过编程方式更改键盘的位置 我正在开发一个图腾应用程序 如果键盘停靠在底部 则很难使用 我尝试创建一个扩展 InputMethodService 的自定义键盘 并且我能够更改按键的布局 但我无法更改键盘的视图位置 快捷键 https
  • Android - 从渲染线程内结束活动

    下午好 我不熟悉 android 中的活动生命周期 并且一直在尽可能地阅读 但我不知道如何以良好的方式解决以下问题 我有一个使用 GLSurfaceView 的活动来在屏幕上绘制各种内容 在这个 GLSurfaceView 的渲染线程中 我
  • 如何在ListView中标记视图?

    我有一个带有列表视图的应用程序 列表视图工作正常 当我希望列表以标记的某些行开始时 问题就开始了 如果我按下它 我可以标记一行 但是 似乎没有找到一种方法来在初始化时标记任何行 这是我的代码 listViewOfBluetooth getL
  • removeall 和removeif 的用例

    我找到了这个 fun main val list MutableList

随机推荐

  • 可以从纯虚函数返回引用吗?

    class I public virtual std wstring const GetName const 0 通常 实现此接口的客户端将其名称包含在其主体中 一切都很好 但有时 GetName 的结果是在函数执行期间计算的 使用静态变量
  • Angular2 中使用 [attr.attributeName] 和 [attributeName] 绑定属性之间的区别

    我是 Angular2 的新手 当 iam 绑定属性时 我通常按以下方式进行操作 示例1
  • 如何以编程方式判断系统是 R/3 还是 S/4

    是否可以通过代码判断当前系统是R 3还是S 4 我需要它 因为我有一个返回人力资源相关数据的软件组件的方法 但这个组件应该与R 3和S 4系统不同 DATA lv software component mo configuration gt
  • 如何解决 ASP.NET Web API 中的连接超时过期问题?

    我使用 ASP NET Web API 从数据库中检索大量数据作为 json 数据列表 但在浏览器控制台中收到此错误 Failed to load resource the server responded with a status of
  • 以编程方式更改数据库连接

    在 Oracle SQL Developer 中 我需要手动切换活动数据库连接 假设登录凭据已保存 是否有一个命令可以以编程方式连接到不同的数据库 我试图避免单击窗口右上角的下拉菜单来选择活动连接 也许我应该宁愿每个数据库有一个 SQL 文
  • 使用PHPUnit测试cookie和session,如何?

    使用 PHPUnit 可以很容易地测试原始 PHP 代码 但是严重依赖 cookie 的代码又如何呢 会议可能是一个很好的例子 有没有不需要我设置的方法 COOKIE测试期间的数据 这感觉像是一种很古怪的做事方式 这是代码的常见问题 尤其是
  • 如何用Scrapy爬取整个网站?

    我无法抓取整个网站 Scrapy 只能抓取表面 我想抓取得更深 过去 5 6 个小时一直在谷歌搜索 但没有任何帮助 我的代码如下 from scrapy contrib spiders import CrawlSpider Rule fro
  • 如何从Struts1中的url中删除'.do'前缀?

    我在 Struts 1 框架中编写了一个 Web 应用程序 一切正常 但在表单提交时 当用户转发到显示的下一页 URL 时actionname do 我不希望 URL 上有这个 Struts 1 默认后缀 相反 我想在 URL 中看到页面的
  • 横向打印图像?

    我正在将控件转换为位图并打印它 using MemoryStream ms new MemoryStream chart1 SaveImage ms ChartImageFormat Bmp Bitmap bm new Bitmap ms
  • Django 无法加载模块“debug_toolbar”:没有名为“debug_toolbar”的模块

    当我尝试运行该项目时 Django 由于某种原因无法加载 django debug toolbar 插件 错误消息说 web 1 ModuleNotFoundError No module named debug toolbar 这是我的设
  • Eclipse RCP 应用程序自定义工具栏

    我正在为我的 RCP 应用程序创建一个自定义工具栏 如图所示 我想要一个带有其他三个文本框的下拉框 这些基本上都是输入框并且是相互依赖的 现在 每个盒子都属于不同的类 我想将它们集中在一个类中 以便更轻松地为彼此创建侦听器 protecte
  • 在Java中为链中的变量赋值[重复]

    这个问题在这里已经有答案了 可能的重复 Java 操作顺序 在一行中使用两个赋值运算符 https stackoverflow com questions 9440844 java order of operations using two
  • 空合并运算符 - 为什么要进行强制转换?

    谁能告诉我为什么以下语句中的第一个语句会引发编译错误而第二个语句不会 NewDatabase AddInParameter NewCommand SomeString DbType String SomeString DBNull Valu
  • 使用 Symfony 2 将数组保存在 SQL 数据库中,Doctrine?

    我正在做应用程序 我使用 SQL 并且我想将复选框值保存在一列中 我正在这样做 Assert NotBlank message please select Assert NotNull message please select Asser
  • Scala 3:类型化元组压缩

    我正在尝试将元组压缩在一起并使用匹配类型来获取生成的压缩的确切类型 我有一个匹配类型和功能 type Z A lt Tuple B lt Tuple lt Tuple A B match case EmptyTuple EmptyTuple
  • 如何使用 Spring Security 为 client_credentials 工作流程向 Feign 客户端提供 OAuth2 令牌

    Overview 我正在尝试编写一个访问公共 REST API 的程序 为了让我能够使用它 我需要提供 OAuth2 令牌 我的应用程序使用 Spring Boot 2 4 2 和 Spring Cloud 版本 2020 0 1 应用程序
  • 从设置弃用中获取随机数

    我正在尝试从一组唯一用户中获取随机的 n 个用户 这是我到目前为止所拥有的 users set random users random sample users num of user 这很有效 但它给了我一个已弃用的警告 我应该用什么来代
  • Xcode 无法推送文件,因为“与服务的通信已中断”

    我一直在尝试将我的项目从 xcode 推送到 github 但它不断给我一条错误消息 表明与服务的通信已中断 以前的提交和推送都有效 但现在坏了 我已经尝试过重新启动计算机和 Xcode 但仍然无法正常工作 我正在尝试用一些视频文件在这里推
  • 色轮背后的算法是什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在我的 iPhone 应用程序上绘制色轮 该怎么做 色轮背后的算法是什么 谢谢 如果您熟悉 HSA 颜色系统 算法会很简单 色轮描
  • 使用camera2 api在前置摄像头中进行全屏视频录制

    我已经被这个问题困扰好几天了 我在 Kotlin 中遵循了 Android 的官方相机示例 android 的相机示例 https github com android camera samples tree master Camera2V