录制时拍摄相机屏幕截图 - 就像 Galaxy S3 一样?

2023-12-12

我正在开发一个使用 SurfaceView 进行显示的相机应用程序。

我可以截取 SurfaceView 的屏幕截图(并将其保存为位图)
使用 getDrawingCache() (在包装 SurfaceView 的布局上)
还有canvas.drawBitmap(...)

然而,在这两种方式中,位图始终是透明/空白的。

我有 Galaxy S3,我可以看到他们的相机具有该功能 他们究竟是如何做到的?

thanks!


几个小时后,我得到了一个很好的解决方案。
也许这不是最好的方法,但对我来说已经足够了。

private long start;
private long end;
private long period;

首先在媒体记录器启动后立即获取启动时间:

private void startRecording()
{
   mMediaRecoder.start();
   start = System.currentTimeMillis();
}

然后,当您按下屏幕/按钮进行截图时,保存句点:

private void captureImage()
{
   end = System.currentTimeMillis();
   period = end - start;
}

最后,当您停止录制时,使用句点和媒体检索器获取位图:

private void saveVideo()
{
   MediaMetadataRetriever retriever = new MediaMetadataRetriever();
   //path -> the path to the video
   retriever.setDataSource(path);
   Bitmap bitmap = retriever.getFrameAtTime(period * 1000,MediaMetadataRetriever.OPTION_CLOSEST);
}

希望对您有帮助!

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

录制时拍摄相机屏幕截图 - 就像 Galaxy S3 一样? 的相关文章

随机推荐

  • 如何添加提交表单的 5 分钟 JavaScript 倒计时器

    我想添加 5 分钟倒计时器 将表单提交到我的 php 页面
  • 从c++ xll返回二维数组到excel,回来

    首先我知道这个问题已经在这里被问过 从 c xll 返回多维数组到 excel 我曾试图重提这个话题 但没有成功 OP 最近不那么活跃 从来没有 这就是为什么我再次问这个问题 提前抱歉 我编写了一个返回 行 一维数组的函数 declspec
  • 这个 Pascal 语法有什么问题?

    我不明白这是怎么回事 你能帮我个忙吗 这是有问题的代码 While not EOF Archi do begin index index 1 Read Archi Alumno index Promes index Alumno index
  • python 中的 urllib2 相当于 ruby

    我在 python 中有一些代码 可以在 python 中发送 http 请求 但我试图弄清楚如何在 ruby 中执行此操作 因为我的服务器是 Rails import urllib2 sys json url http new openb
  • 将本地文件推送到 github 存储库中的目录

    我的本地存储库中有一个文件 我想将其推送到我的 Github 存储库中的目录 我有以下文件 F Development Python Workspace StringCalculator py 我需要将此文件推送到我的存储库的以下路径 ht
  • 尽管存在显式实例化,但类模板的成员函数模板找不到定义。不链接

    Edit 这不是链接问题的重复 因为我使用的是显式实例化 并且只有特定类型的成员函数不链接 其他函数会链接 以下代码可以编译但无法链接 我不明白为什么 它显式实例化Vector类来限制可能的参数数量T因此隐藏了定义Vector
  • SQL Server 2008 Express 无法附加 mdf 文件

    这是消息 它出什么问题了 是安装问题吗 标题 Microsoft SQL Server Management Studio 无法显示请求的对话框 附加信息 参数名称 nColIndex 实际值为 1 微软 SqlServer GridCon
  • Powershell - 根据文件名创建文件夹,然后将该文件放入该文件夹中

    我有一个文件列表说 T123 Product 1 jpg T123 Product 2 jpg T123 Product 3 jpg T456 Product 1 jpg T456 Product 2 jpg T456 Product 3
  • 如何在循环中使用 mutate 和 ifelse?

    我所做的是创建虚拟变量来指示连续变量是超过某个阈值 1 还是低于该阈值 0 我通过几次重复的突变实现了这一点 我想用循环代替 load tidyverse library tidyverse create data data lt data
  • 覆盖 XML 序列化方法

    我在尝试自定义 DateTime 变量在我的对象中序列化的方式时遇到问题 我希望它输出为 2011 09 26T13 00 00Z 但是当我重写 GetObjectData 函数 我认为这是执行此操作的方法 时 根本不会为它们输出任何 XM
  • 带有动态选项组的下拉列表

    嗨 cakephp 专家 我正在寻求您对带有动态 optgroup 的动态下拉列表的帮助 假设我有两个表 countries id country name counties id county name country id 现在 我想显
  • Android-NavigationView从右到左

    我正在使用 Android Studio 1 5 的最新版本 我想使用抽屉布局制作一个菜单 用于定位其调用 GravityCompat 我正在尝试使用这个组件并修改它 将抽屉从右向左放置 这是我的代码 public class MainAc
  • iOS 8 中的 NSDateFormatter 日期格式问题

    我有一个 NSDateFormatter 用来将 NSDate 格式化为字符串 以下格式不起作用 ddMMyyyy hhmmss SSS 当我尝试格式化 NSDate 时 我得到以下输出 18092014 08 49 03 638 其中有一
  • Azure 搜索是否处理同义词

    Azure 搜索 可以根据同义词进行搜索吗 例如 如果我搜索 鞋类 系统应该获取以下结果 鞋类的同义词 如鞋子 凉鞋等 我进行了很多搜索 但未能找到有关它的适当文档 我能找到的最接近的是一个帖子说它还不支持 但这是一个旧帖子 https s
  • 从静态方法调用 startActivityForResult

    我有一个按钮监听器 当用户单击按钮时我想启动相机意图 目前我有这个 public class ButtonListener implements View OnClickListener private ArrayList
  • 在整个页面加载之前显示加载栏

    我想在加载整个页面之前显示一个加载栏 目前 我只是使用了一个小的延迟 document ready function page fadeIn 2000 该页面已使用 jQuery 注意 我已经尝试过这个 但它对我不起作用 脚本运行时加载栏
  • Python“for i in”+变量

    我有以下代码 Euler Problem 1 print We are going to solve Project Euler s Problem 1 euler number input What number do you want
  • 如何在Linux上指定时间运行脚本? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我有一个包含特定日期和时间的文本文件 我希望能够在该文件中指定的时间运行脚本 你将如何实现这一目标 创建另一个在后台运行的脚本 类似于守护程序 并每秒检查当前时间是否与文件中的时间匹
  • 将电子邮件另存为 MSG 文件,无需使用 Outlook(COM 对象等)或第 3 方软件

    现在 我正在使用 Exchange Web 服务 API 和 PowerShell 从 Exchange 中提取特定电子邮件并将其保存为 EML 文件 这很好用 但是 用户 客户要求电子邮件采用 msg 格式 我见过有两种方法可以做到这一点
  • 录制时拍摄相机屏幕截图 - 就像 Galaxy S3 一样?

    我正在开发一个使用 SurfaceView 进行显示的相机应用程序 我可以截取 SurfaceView 的屏幕截图 并将其保存为位图 使用 getDrawingCache 在包装 SurfaceView 的布局上 还有canvas draw