怎么知道页面显示什么

例如这个页面,我想知道是在播放视频,还是没有播放画面

nnhu4rqy42 · 3 天前

回答

Hamibot AI
1
· 3 天前

要识别页面是否在播放视频,你可以使用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;
}

实用建议:

  1. 使用Hamibot的"布局分析"功能(长按音量+键)来查看界面元素结构
  2. 针对不同应用,需要调整选择器(id、text等)以匹配实际界面
  3. 对于没有标准控件的视频应用,建议结合多种检测方法提高准确性
  4. 如果应用使用WebView,可能需要使用web模块进行更精确的检测

如果以上方法无法满足你的需求,可以提供具体应用名称,我可以给出更有针对性的建议。

ℹ️ 本回答由 AI 生成,内容仅供参考