回答
要识别页面是否在播放视频,你可以使用Hamibot的界面元素检测功能。以下是几种实用的方法:
方法一:通过播放/暂停按钮状态判断
大多数视频应用在播放状态会显示"暂停"按钮,暂停状态会显示"播放"按钮。你可以通过以下脚本检测:
// 文档地址 https://docs.hamibot.com/
function isVideoPlaying() {
// 尝试查找暂停按钮(根据实际应用调整选择器)
var pauseButton = id("video_pause").findOne(1000);
if (pauseButton) {
log("视频正在播放");
return true;
}
// 尝试查找播放按钮
var playButton = id("video_play").findOne(1000);
if (playButton) {
log("视频未播放");
return false;
}
log("无法确定视频状态");
return null;
}
// 使用示例
var playing = isVideoPlaying();
方法二:通过进度条检测
如果视频正在播放,进度条通常会不断移动:
// 文档地址 https://docs.hamibot.com/
function checkProgressBar() {
// 第一次获取进度条位置
var progressBar = id("progress_bar").findOne(1000);
if (!progressBar) return false;
var firstPosition = progressBar.bounds().centerX();
sleep(1000); // 等待1秒
// 第二次获取进度条位置
progressBar = id("progress_bar").findOne(1000);
if (!progressBar) return false;
var secondPosition = progressBar.bounds().centerX();
// 如果位置变化,说明视频在播放
return Math.abs(secondPosition - firstPosition) > 5;
}
if (checkProgressBar()) {
log("视频正在播放");
} else {
log("视频可能未播放");
}
方法三:图像识别方法
如果应用没有明显的UI标识,可以使用图像识别:
// 文档地址 https://docs.hamibot.com/
function detectVideoState() {
// 截取播放控制区域
var region = captureScreen();
if (!region) return null;
// 假设你有"暂停状态"和"播放状态"的模板图片
// 将模板图片放在脚本目录下
var playIcon = images.read("./play_icon.png");
var pauseIcon = images.read("./pause_icon.png");
// 在截图中查找图标
var playMatch = images.findImage(region, playIcon);
var pauseMatch = images.findImage(region, pauseIcon);
if (pauseMatch) {
log("视频正在播放");
return true;
} else if (playMatch) {
log("视频未播放");
return false;
}
log("无法确定视频状态");
return null;
}
实用建议:
- 使用Hamibot的"布局分析"功能(长按音量+键)来查看界面元素结构
- 针对不同应用,需要调整选择器(id、text等)以匹配实际界面
- 对于没有标准控件的视频应用,建议结合多种检测方法提高准确性
- 如果应用使用WebView,可能需要使用
web模块进行更精确的检测
如果以上方法无法满足你的需求,可以提供具体应用名称,我可以给出更有针对性的建议。
ℹ️ 本回答由 AI 生成,内容仅供参考
