美文网首页
autojs说啥画啥

autojs说啥画啥

作者: 牙叔教程 | 来源:发表于2021-05-12 23:25 被阅读0次

牙叔教程 简单易学

使用场景

你说个词, 我画个画, 目前就是显示一张图片,后期可以自己改成画画的方式来呈现图片

效果展示

效果.png

流程图

你说我画流程图.png

autojs版本

8.7.7-0

get知识点

  1. 停止其他脚本
  2. 百度语音识别
  3. 百度通用物体和场景识别高级版
  4. 百度图像主体识别
  5. 爬取百度图片
  6. 编辑距离
  7. 录音
  8. canvas画图片
  9. 按钮触摸事件监听
  10. 申请录音权限, 以及获取申请结果
  11. canvas画图片时, 图片居中
  12. 图片回收
  13. 检查是否有录音权限
  14. python爬虫改为autojs
  15. java方式的post
  16. 音频播放和停止

代码讲解

1. 导入类
importClass(android.content.pm.PackageManager);
importClass("androidx.core.app.ActivityCompat");
importClass(android.media.MediaRecorder);
2. 停止其他脚本
engines.all().map((ScriptEngine) => {
  if (engines.myEngine().toString() !== ScriptEngine.toString()) {
    ScriptEngine.forceStop();
  }
});
3. 导入模块, 主要是百度智能云的api, 包括 语音识别, 通用物体和场景识别, 图片主体识别
let getVoiceText = require("./百度短语音识别");
let 爬取百度图片 = require("./爬取百度图片");
let 编辑距离 = require("./编辑距离");
let 图像识别 = require("./图像识别/图像识别");
4. 初始化文件路径
const voiceFilepath = "/sdcard/1.amr";
files.createWithDirs(voiceFilepath);
const soundFile = new java.io.File(voiceFilepath);
5. 布局, 主要是一个画板和一个录音按钮
ui.layout(
  <vertical gravity="center">
    <text textSize="36sp" w="*" gravity="center" textStyle="bold">
      说啥画啥
    </text>
    <text textSize="24sp" w="*" gravity="center" textStyle="bold">
      牙叔教程 简单易学
    </text>
    <canvas id="board" w="250dp" h="250dp"></canvas>
    <button id="btn" margin="6" textSize="26sp" w="*" h="100dp"></button>
    <horizontal weightSum="2" bg="#888888">
      <button id="play" layout_width="0dp" layout_weight="1" textSize="25sp">
        开始播放
      </button>
      <button id="stop" layout_width="0dp" layout_weight="1" textSize="25sp">
        停止播放
      </button>
    </horizontal>
  </vertical>
);
6. 延迟获取画板宽高
setTimeout(() => {
  bw = ui.board.getWidth();
  bh = ui.board.getHeight();
}, 100);
7. 画板的draw事件
ui.board.on("draw", function (canvas) {
  canvas.drawARGB(255, 127, 127, 127);
  let 最终选择的图片 = getBoardImg();
  if (最终选择的图片) {
    canvas.drawBitmap(最终选择的图片, (bw - iw) / 2, (bh - ih) / 2, paint);
  }
});
8. 音频播放和停止
ui.play.click(function () {
  media.playMusic(soundFile.getAbsolutePath());
});
ui.stop.click(function () {
  media.stopMusic();
});
9. 录音权限及录音按钮的touch监听
let r = checkPermission();
if (!r) {
  toastLog("请授予录音权限");
  ui.emitter.on("request_permission_result", function () {
    log(arguments);
  });
  let permissionName = "RECORD_AUDIO";
  requestPermission(permissionName);
} else {
  log("有录音权限");
  view.setOnTouchListener(function (view, event) {
    switch (event.getAction()) {
      case event.ACTION_DOWN:
        log("ACTION_DOWN");
        record();
        return true;
      case event.ACTION_UP:
        log("ACTION_UP");
        recognizeVoice();
        return true;
    }
    return true;
  });
}
10. 退出时不要忘记释放资源
events.on("exit", function () {
  if (recorder) {
    recorder.stop();
    recorder.release();
    recorder = null;
    media.stopMusic();
  }
});
11. 申请和检查权限
function getImgPathList(dir) {
  var arr = files.listDir(dir);
  arr = arr.map((item) => {
    return files.join(dir, item);
  });
  return arr;
}
12. 申请和检查权限
function requestPermission(permissionName) {
  ActivityCompat.requestPermissions(activity, ["android.permission." + permissionName], 321);
}
function checkPermission() {
  let permissionName = "RECORD_AUDIO";
  let pm = context
    .getPackageManager()
    .checkPermission("android.permission." + permissionName, context.getPackageName());
  if (PackageManager.PERMISSION_GRANTED == pm) {
    return true;
  } else {
    return false;
  }
}

参考文章

声明

部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

给我个面子小图.jpg

相关文章

  • autojs说啥画啥

    牙叔教程 简单易学 使用场景 你说个词, 我画个画, 目前就是显示一张图片,后期可以自己改成画画的方式来呈现图片 ...

  • 你在说啥说啥啥

    十月晨光下一抹生机 独自在桌上枯萎 阳光刚好切中温度的痛点 我想透过叶与叶之间的缝隙 找到你 嘴角微微上扬 在我游...

  • 说啥就是啥

    一把大茶壶, 清水哗哗哗。 咱国茶文化, 谁都可打扮。 只要能赚钱, 说啥就是啥。

  • 说啥有啥

    今天中午理发时,遇到个健谈有趣的老板娘。 理发店的老板是个大姐,人很有趣。说现在这个时代变了,人离不开电脑,手机。...

  • 想啥说啥

    早上怀着忐忑不安或者说郁闷的压力山大的心情起了床,洗脸、刷牙、更衣……一如既往的进行着日复一日的琐碎却又必须的章程...

  • 想到啥说啥。

    很久没有在网上写点什么了。 最近心里很浮躁,坐在办公室里无心工作,对着电脑发呆、想事儿。对猎头工作的热爱也在无尽的...

  • 啥,你说啥?

    这两天把ins搞定了,ins的涨粉比facebook要快很多。几乎每个小时都有不少like,还有粉丝。关联了我的f...

  • 想啥说啥

    2020.11.04 星期三 晴 生活不简单,尽量简单过。时间就是一颗药,你掌握好了它便是...

  • 想啥说啥

    最近想的有点多,思绪有点乱。导致我不知道该写什么,因为一说就说来话长了,所以干脆就不说了吧。终有一天,要说的总会说...

  • 有啥说啥

    年关将至,工作上最忙最累的那段已经熬过去了,这让我轻松许多,似乎就等着放假过年了。 生活中,家里还没有过年的气氛,...

网友评论

      本文标题:autojs说啥画啥

      本文链接:https://www.haomeiwen.com/subject/eqnzdltx.html