短剧全自动

HAMI_9816449634 · 2 天前

回答

Hamibot AI
1
· 2 天前

关于“短剧全自动”自动化需求,Hamibot 本身不提供内置的短剧专属脚本,但你可以通过编写或适配脚本实现短剧 App 的自动播放、滑动切换、跳过广告等功能。以下是实现该需求的核心步骤与最佳实践:

1. 基础权限与环境准备

  • 进入手机「设置」→「无障碍」→ 开启 Hamibot 的无障碍服务。
  • 进入手机「设置」→「应用管理」→ 找到 Hamibot → 授予“后台弹出界面”权限。未授予权限会导致脚本启动后立即提示“运行结束”。
  • 在 Hamibot 控制台开启“保持屏幕常亮”与“防休眠”选项,避免播放中途锁屏中断。

2. 核心自动化逻辑
短剧自动化通常包含以下环节:

  • 启动目标 App 并等待主界面加载
  • 识别视频播放状态
  • 模拟上滑或点击“下一集”
  • 自动处理广告、签到、权限申请等弹窗
  • 循环执行并记录异常日志

3. 兼容 Rhino 引擎的示例代码

// 文档地址 https://docs.hamibot.com/
var targetApp = "com.example.shortdrama"; // 替换为目标短剧 App 包名
var playDuration = 60000; // 单集预估播放时长(毫秒),需根据实际调整

function launchAndWatch() {
    launchApp(targetApp);
    sleep(5000); // 等待 App 冷启动

    while (true) {
        // 尝试定位视频播放控件(不同 App 控件特征不同,需抓包或布局分析确认)
        var videoNode = className("android.widget.VideoView").findOne(3000) || 
                        className("android.view.SurfaceView").findOne(3000);
        
        if (!videoNode) {
            log("未检测到视频界面,尝试处理弹窗");
            handlePopups();
            sleep(2000);
            continue;
        }

        log("视频播放中,等待 " + (playDuration / 1000) + " 秒后切换");
        sleep(playDuration);

        // 模拟上滑切换下一集
        var w = device.width;
        var h = device.height;
        swipe(w / 2, h * 0.75, w / 2, h * 0.25, 300);
        sleep(3000); // 等待下一集加载
    }
}

function handlePopups() {
    // 匹配常见弹窗按钮文本
    var keywords = ["跳过", "关闭", "我知道了", "允许", "取消"];
    for (var i = 0; i < keywords.length; i++) {
        var btn = text(keywords[i]).findOne(800);
        if (btn) {
            btn.click();
            log("已点击弹窗: " + keywords[i]);
            sleep(1000);
            return;
        }
    }
}

launchAndWatch();

4. 稳定性优化建议

  • 动态定位优先:短剧 App 更新频繁,硬编码坐标极易失效。优先使用 text()desc()className() 组合定位,或使用 id() 配合 waitFor()
  • 随机化操作:固定间隔与固定坐标易触发平台风控。可在 sleep() 中加入随机偏移,例如 sleep(playDuration + random(-2000, 2000))
  • 异常恢复机制:添加 try...catch 包裹核心逻辑,配合 auto.waitFor() 确保无障碍服务就绪后再执行。
  • 日志与调试:使用 Hamibot 控制台的实时日志功能,通过 log() 输出关键节点,便于快速定位卡死或误触问题。

5. 常见问题排查

  • 脚本秒退:90% 为无障碍服务或后台弹窗权限未开启,按第 1 步重新授权即可。
  • 滑动无响应:部分 App 拦截无障碍滑动事件,可改用 click() 点击界面上的“下一集”或“>”按钮。
  • 频繁卡在广告页:在 handlePopups() 中补充该 App 特有的广告按钮文本,或增加 click(device.width / 2, device.height / 2) 作为兜底点击。

如果你能提供具体的短剧 App 名称、当前脚本的报错日志或界面控件结构(可通过 Hamibot 的“布局分析”功能获取),我可以为你输出精准适配的定位代码与防中断策略。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实