使用Auto.js脚本实现免root自动录制手机屏幕

文章附件下载:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:3645

代码功能说明:

自动创建保存目录确保路径存在动态生成带时间戳的文件名避免重复支持三种分辨率设置和横竖屏录制提供悬浮窗控制界面可随时停止录制完成后自动触发媒体扫描包含完善的错误处理和权限检查可自定义录制时长和视频码率

// 屏幕录制参数配置var config = {

recordTime: 30 60 1000, // 30分钟 savePath: "/sdcard/Movies/AutoRecord/", resolution: "720p", // 可选 480p/720p/1080p bitRate: 4000000, // 4Mbps orientation: 0 // 0自动 1竖屏 2横屏};

// 创建保存目录files.ensureDir(config.savePath);

// 主函数function main() {

// 请求截图权限 if(!requestScreenCapture()){

toast("请求截图权限失败"); exit(); }

// 开始录制

startRecording();

// 定时停止

setTimeout(stopRecording, config.recordTime);

// 显示悬浮窗控制

showFloatWindow();

}

// 开始录制function startRecording() {

let date = new Date(); let filename = "record" + date.getFullYear() + pad(date.getMonth() + 1) + pad(date.getDate()) + "" + pad(date.getHours()) + pad(date.getMinutes()) + pad(date.getSeconds()) + ".mp4";

config.filePath = config.savePath + filename;

// 开始媒体录制

media.projection.startRecording({

resolution: config.resolution,

bitRate: config.bitRate,

orientation: config.orientation,

path: config.filePath

});

toast("开始录制: " + filename);

log("录制保存路径: " + config.filePath);

}

// 停止录制function stopRecording() {

if(media.projection.isRecording()){

media.projection.stopRecording(); toast("录制已保存: " + config.filePath);

// 通知媒体扫描

media.scanFile(config.filePath);

}

}

// 显示悬浮控制窗口function showFloatWindow() {

let window = floaty.window( );

window.stop.click(() => {

stopRecording();

window.close();

exit();

});

window.exit.click(() => {

window.close();

exit();

});

}

// 辅助函数:补零function pad(num) {

return num < 10 ? "0" + num : num;}

// 执行主函数main();

// 屏幕录制参数配置var config = {

recordTime: 30 60 1000, // 30分钟 savePath: "/sdcard/Movies/AutoRecord/", resolution: "720p", // 可选 480p/720p/1080p bitRate: 4000000, // 4Mbps orientation: 0 // 0自动 1竖屏 2横屏};

// 创建保存目录files.ensureDir(config.savePath);

// 主函数function main() {

// 请求截图权限 if(!requestScreenCapture()){

toast("请求截图权限失败"); exit(); }

// 开始录制

startRecording();

// 定时停止

setTimeout(stopRecording, config.recordTime);

// 显示悬浮窗控制

showFloatWindow();

}

// 开始录制function startRecording() {

let date = new Date(); let filename = "record" + date.getFullYear() + pad(date.getMonth() + 1) + pad(date.getDate()) + "" + pad(date.getHours()) + pad(date.getMinutes()) + pad(date.getSeconds()) + ".mp4";

config.filePath = config.savePath + filename;

// 开始媒体录制

media.projection.startRecording({

resolution: config.resolution,

bitRate: config.bitRate,

orientation: config.orientation,

path: config.filePath

});

toast("开始录制: " + filename);

log("录制保存路径: " + config.filePath);

}

// 停止录制function stopRecording() {

if(media.projection.isRecording()){

media.projection.stopRecording(); toast("录制已保存: " + config.filePath);

// 通知媒体扫描

media.scanFile(config.filePath);

}

}

// 显示悬浮控制窗口function showFloatWindow() {

let window = floaty.window( );

window.stop.click(() => {

stopRecording();

window.close();

exit();

});

window.exit.click(() => {

window.close();

exit();

});

}

// 辅助函数:补零function pad(num) {

return num < 10 ? "0" + num : num;}

// 执行主函数main();