使用情景
录音
效果展示
![](https://i-blog.csdnimg.cn/blog_migrate/656357fa953eaf998dc18488f7409ebe.jpeg)
原理
- 使用MediaRecorder录音
知识点学习
- 导入类
- 按钮左右平分布局
- 按钮点击事件
- 媒体文件的播放和停止
- 按钮文字的设置
- 权限检查
- 权限申请
- 录音参数设置
- 按钮touch事件
- 资源的释放
代码讲解
- 导入类
importClass(android.content.pm.PackageManager);
importClass("androidx.core.app.ActivityCompat");
importClass(android.media.MediaRecorder);
- ui
ui.layout(
<vertical gravity="center">
<text textSize="66sp" w="*" gravity="center" textStyle="bold">
录音
</text>
<button id="btn" margin="20" textSize="35sp" w="300dp" h="300dp"></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>
);
- 初始化一些变量
const voiceFilepath = "/sdcard/1.mp3";
files.createWithDirs(voiceFilepath);
const soundFile = new java.io.File(voiceFilepath);
let recorder = null;
let view = ui.btn;
- 判断是否有录音权限
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;
}
}
- 申请权限
function requestPermission(permissionName) {
ActivityCompat.requestPermissions(activity, ["android.permission." + permissionName], 321);
}
- 设置按钮touch监听
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;
});
- 媒体文件播放和停止
ui.play.click(function () {
media.playMusic(soundFile.getAbsolutePath());
});
ui.stop.click(function () {
media.stopMusic();
});
- 改变按钮文字内容
ui.btn.setText("按住录音\n松开识别");
微信公众号 AutoJsPro教程
QQ群
747748653