基于autojs的安卓免root脚本引擎编写的QQ文字换语言发送全自动脚本

说明

本文提供的代码仅供参考。不建议用于生产环境。
可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。

Auto.js简介

Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。

Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。

推荐教程

Auto.js Pro安卓全分辨率免ROOT引流脚本开发视频教程(HD超清1080p)

开发文档

Auto.js Pro开发文档
文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。

为什么要使用Auto.js Pro开发脚本,有什么特点?

吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是:

  • Auto.js Pro能开发免ROOT的安卓脚本
  • Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型
  • Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面
  • Auto.js Pro使用的javascript的语法比较优雅,代码可读性强
  • Auto.js Pro的命令库非常的丰富,接口比较多
  • Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告

示例代码

//此代码由飞云脚本圈整理提供(www.feiyunjs.com)
"auto"
var window = floaty.window(
    
    <vertical>
    
  
        <button id="ok" text="发送"w="80" h="50"/>
    
    </vertical>
);
//
window.exitOnClose();
setInterval(() => {}, 1000);

var execution = null;

/***文字转语音****/

var key=3;
    


//记录按键被按下时的触摸坐标
var x = 0,
    y = 0;
//记录按键被按下时的悬浮窗位置
var windowX, windowY;
//记录按键被按下的时间以便判断长按等动作
var downTime;

window.ok.setOnTouchListener(function(view, event) {
    switch (event.getAction()) {
        case event.ACTION_DOWN:
            x = event.getRawX();
            y = event.getRawY();
            windowX = window.getX();
            windowY = window.getY();
            downTime = new Date().getTime();
            return true;
        case event.ACTION_MOVE:
            //移动手指时调整悬浮窗位置
            window.setPosition(windowX + (event.getRawX() - x),
                windowY + (event.getRawY() - y));
            //如果按下的时间超过5秒判断为长按,退出脚本
            if (new Date().getTime() - downTime > 5000) {
                exit();
            }
            return true;
        case event.ACTION_UP:
            //手指弹起时如果偏移很小则判断为点击
            if (Math.abs(event.getRawY() - y) < 5 && Math.abs(event.getRawX() - x) < 5) {
                onClick();
            }
            return true;
    }
    return true;
});

var text1;
function onClick() {
    if (window.ok.getText() == '发送') {
        if(currentPackage()=="com.tencent.mobileqq")
        {
            if(id("input").exists()){
             text1=id("input").findOne().text();
            key=2;
           //toast(text1);
           }
        else
        {
            toast("请在QQ聊天界面操作");
            return 1;
         }
         }
         else
        {
            toast("请在QQ聊天界面操作");
            return 2;
         }
        // toast("hhhhhhhhh");
     
    }
}
while(1)
{
  if(key==2)
  {

     
     
     //获取token
var url_getToken = 'https://aip.baidubce.com/oauth/2.0/token';
    
var Token_html = http.post(url_getToken,{
    'grant_type'    : 'client_credentials', //固定值
    'client_id'     : '9EGUQX6ssVZIWDwW3rZSUbX7', //填写你的 APIKey
    'client_secret' : 'osVsq16TkzxOMjL70MQnIswpgPjm6s10', //填写你的 SecretKey
});
    
var Token = Token_html.body.json().access_token;


  
 

    var a=encodeURI(text1);
  
  var ocr_post_url = 'http://tsn.baidu.com/text2audio';
        var Ocr_Question_Html = http.post(ocr_post_url, {
            'tok' : Token,
            'tex' : a,
            'cuid' : '863281030228548',
            'ctp': '1',
            'lan': 'zh',
            'spd': '5',//语速0-15 5
            'pit': '5',//音调0-15 5
            'vol': '5',//音量0-15 5
            'per': '4',//	发音人选择, 0为普通女声,1为普通男生,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女声
            'aue': '3',//	3为mp3格式(默认); 4为pcm-16k;5为pcm-8k;6为wav(内容同pcm-16k); 注意aue=4或者6是语音识别要求的格式,但是音频内容不是语音识别要求的自然人发音,所以识别效果会受影响。
        
        });
           var a=Ocr_Question_Html.body.bytes();
           
           
           
          var QQ="1946586304";
    
    var date1 = (new Date().getYear() + 1900) * 100 + new Date().getMonth() + 1
  var date2 = new Date().getDate()
  var path = "/storage/emulated/0/tencent/MobileQQ/" + QQ + "/ptt/" + date1 + "/" + date2 + "/";
  
  files.removeDir(path);
  files.ensureDir(path);
  sleep(200)
     
      id("name").className("android.widget.ImageView").boundsInside(0,1006,154,1108).click();//135
  
  click("录音")
  sleep(200)
  //bounds(379, 1356, 700, 1677).find().click()
  desc("开始录音").click();
  sleep(2000) //录音时长,可随意指定,不建议太短
  //bounds(379, 1356, 700, 1677).find().click()
  desc("停止录音").click()
  
  sleep(500)
  var fileName = files.listDir(path);
  toastLog(fileName[0])
 // files.removeDir(path) //删除生成录音文件
  files.ensureDir(path) //确保目录存在
  files.writeBytes("/sdcard/tencent/MobileQQ/"+QQ+"/ptt/"+date1+"/"+date2+"/1.mp3",a);
 //  toastLog(path+"1.mp3");
   
  files.rename(path + "1.mp3", fileName[0]) //更名,让QQ发送替换后的音频文件
 
    var fileName1 = files.listDir(path);
 // toastLog(fileName1[0])
 id("input").findOne().setText("");
  click("发送");
    toast("成功");
   key=1;
}

}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值