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

devtools/2024/11/25 14:03:35/

在这里插入图片描述

文章目录

      • 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/devtools/136851.html

相关文章

ESP32学习笔记_Bluetooth(1)——蓝牙技术与 BLE 通信机制简介

摘要(From AI): 这篇笔记详细讲解了蓝牙技术的分类、核心架构和通信流程,重点介绍了低功耗蓝牙(BLE)的协议栈、角色划分及连接机制,结合拓扑示例清晰阐述了蓝牙网络配置和操作过程 前言:本文档是本人在《ESP32-C3 物联…

HP6心率血压传感器

目录 一、介绍 1、工作原理概述 2、具体实现步骤 二、HP6的通信及配置 1、通信接口 2、器件地址/命令 3、校验 三、程序设计 ①IIC通信相关基础函数 ②HP6相关基础函数 一、介绍 HP6心率血压传感器的原理主要基于光电容积脉搏波描记法(PPG)&…

【Apache Paimon】-- 6 -- 清理过期数据

目录 1、简要介绍 2、操作方式和步骤 2.1、调整快照文件过期时间 2.2、设置分区过期时间 2.2.1、举例1 2.2.2、举例2 2.3、清理废弃文件 3、参考 1、简要介绍 清理 paimon (表)过期数据可以释放存储空间,优化资源利用并提升系统运行效率等。本文将介绍如何清理 Paim…

FastLLM高性能大模型推理库

FastLLM 是一个高效、易用的轻量级语言模型库。 🚀 纯c实现,便于跨平台移植,可以在安卓上直接编译🚀 支持读取Hugging face原始模型并直接量化🚀 支持部署Openai api server🚀 支持多卡部署,支…

慢查询优化思路

本文介绍慢查询的优化思路,但不以索引优化作为重点,索引相关的优化可以参考《索引使用原则、索引失效》、《MySQL单表查询时索引使用情况》。 1.应用层面 对于报表类页面,一般涉及到的数据库表较多且数据量大,容易造成接口查询较…

private static final long serialVersionUID = 1L

Java 序列化机制中的一个标识,用于确保序列化和反序列化过程中类的兼容性。 一、具体作用 1.类的唯一标识: 序列化时,Java 会将类的 serialVersionUID 写入序列化后的数据中。反序列化时,Java 会检查 serialVersionUID 是否和原…

【2024 Optimal Control 16-745】Ubuntu22.04 安装Julia

找不到Julia 内核 下载Julia curl -fsSL https://install.julialang.org | sh官网下载:Julia 安装 IJulia 打开 Julia REPL(在终端中输入 julia)并执行以下命令安装 IJulia: using Pkg Pkg.add("IJulia")这将为 Ju…

华为FusionCube 500-8.2.0SPC100 实施部署文档

环境: 产品:FusionCube 500版本:8.2.0.SPC100场景:虚拟化基础设施平台:FusionCompute两节点 MCNA * 2硬件部署(塔式交付场景)免交换组网(配置AR卡) 前置准备 组网规划 节…