Android 14 screenrecord录制视频失败的原因分析

news/2024/11/26 11:09:39/

在这里插入图片描述

文章目录

      • 1. 权限问题
      • 2. 存储空间不足
      • 3. 命令被中断
      • 4. 目标路径问题
      • 5. Android 14 的新限制
      • 6. 文件系统同步问题
      • 7. 录制失败
      • 检查步骤总结:

在 Android 14 系统上,使用 screenrecord 命令录制视频后,生成的文件大小为 0,可能的原因包括以下几点:

1. 权限问题

  • 问题描述screenrecord 需要有写入存储的权限。如果命令运行的用户(例如 adb shell 用户)没有足够的权限,文件可能无法正常写入。

  • 解决方法

    • 确保命令以具有足够权限的用户运行(如通过 adb root 切换到 root 用户)。
    • 检查目标路径是否有写权限:运行 ls -l /sdcard/ 查看权限。
    • 尝试将录制文件保存到 /data/local/tmp/ 路径,这是更安全的测试目录。
    screenrecord --time-limit 60 /data/local/tmp/111.mp4
    

2. 存储空间不足

  • 问题描述:目标路径所在的分区可能没有足够的存储空间,导致文件无法完整写入。
  • 解决方法
    • 使用 df -h 检查 /sdcard 或目标存储位置的剩余空间。
    • 如果空间不足,清理存储后重试。

3. 命令被中断

  • 问题描述screenrecord录制期间被中断(例如,因设备锁屏、adb 连接断开、用户主动终止等)。
  • 解决方法
    • 确保录制期间设备保持解锁状态。
    • 保持 adb 连接稳定。

4. 目标路径问题

  • 问题描述/sdcard/111.mp4 路径可能有问题,例如 /sdcard 被重定向到一个不可写路径。
  • 解决方法
    • 使用 ls -l /sdcard/ 查看 /sdcard 是否指向正确路径。
    • 尝试将文件保存到明确的路径,例如 /storage/emulated/0/111.mp4

5. Android 14 的新限制

  • 问题描述:Android 14 可能引入了新的权限或 API 限制,影响 screenrecord 的运行。
  • 解决方法
    • 确保设备已启用开发者选项,并允许 adb 调试。
    • 在 Android 14 上测试时,建议更新至最新的工具版本(例如,确保 adb 和 platform-tools 最新)。

6. 文件系统同步问题

  • 问题描述录制完成后,sync 命令可能没有及时刷新缓存,导致文件大小显示为 0。
  • 解决方法
    • 运行 sync 后,等待几秒后再查看文件。

    • 确认文件状态:

      ls -lh /sdcard/111.mp4
      

7. 录制失败

  • 问题描述screenrecord 本身可能出错,没有实际开始录制
  • 解决方法
    • 运行命令时加上 --verbose 参数,查看详细的输出日志:

      screenrecord --time-limit 60 --verbose /sdcard/111.mp4
      
    • 检查日志中是否有错误提示。


检查步骤总结:

  1. 检查路径写权限和存储空间。
  2. 确保命令运行期间设备状态正常(解锁、连接稳定)。
  3. 测试使用其他路径或短时录制,例如 10 秒。
  4. 查看日志输出定位问题。

结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!


http://www.ppmy.cn/news/1550045.html

相关文章

【Android】静态广播接收不到问题分析思路

参考资料: Android 静态广播注册流程(广播2)-CSDN博客 Android广播发送流程(广播3)_android 发送广播-CSDN博客 https://zhuanlan.zhihu.com/p/347227068 在Android中,静态广播如果静态广播不能接收,我们可以从整个流程中去分析&#xff…

通信综合—8.通信网络安全

一、信息系统安全概述 1.信息系统的构成和分类 信息系统是将用于收集、处理、存储和传播信息的部件组织在一起而成的相关联的整体,般是由计算机硬件、网络和通信设备、计算机软件、信息资源和信息用户组成。它是以处理信息流为目的的人机一体化系统。信息系统主要…

蓝桥杯不知道叫什么题目

小蓝有一个整数,初始值为1,他可以花费一些代价对这个整数进行变换。 小蓝可以花贵1的代价将教数增加1。 小蓝可以花费3的代价将整数增加一个值,这个值是整数的数位中最大的那个(1到9) .小蓝可以花费10的代价将整数变为原来的2倍, 例如,如果整…

Linux文件编程(持续更新)

Linux系统提供了一系列自动化完成文件编程的API,如: 打开 open 读写 write/read 光标定位 lseek 关闭 close ——————————————————————————————————————————— mode 0600(第一个0无意义&#…

MySQL基础知识大总结

一,介绍 数据库是什么,我们在学习其他编程语言的时候会使用数组呀,链表,二叉树等等一些数据结构来存储我们的数据,但是大家有没有发现我们一旦关闭程序,所有的数据都没有了,这在发行的软件来看是…

《硬件架构的艺术》笔记(六):处理字节顺序

介绍 本章主要介绍字节顺序的的基本规则。(感觉偏软件了,不知道为啥那么会放进《硬件架构的艺术》这本书)。 定义 字节顺序定义数据在计算机系统中的存储格式,描述存储器中的MSB和LSB的位置。对于数据始终以32位形式保存在存储器…

Spring 框架七大模块(Java EE 学习笔记03)

​ ​核心容器模块(Core Container) 核心容器模块在Spring的功能体系中起着支撑性作用,是其他模块的基石。核心容器层主要由Beans模块、Core模块、Contex模块和SpEL模块组成。 (1)Beans模块。它提供了BeanFactory类&…

spring boot jpa中 Hibernate 注解 @Immutable 的使用场景

入门示例 使用 spring boot jpa 来操作数据库的增删改查是非常方便的,定义完 model 之后,直接定义JPA 即可,后续操作就很丝滑了: Table(name "host_spec_price") Data Entity public class BudgetHost {IdGeneratedV…