更新记录
1.0.0(2023-02-01)
新版首发
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | 适用版本区间:11 - 16 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
KJ-BaiDuSpeech
官方speech百度语音扩展、语音唤醒(双端)
WakeUp.bin 生成教程
https://ai.baidu.com/tech/speech/wake
注意
1.需要在 manifest.json -> App模块配置 -> Speech开启百度语音识别,并且要相应的key
2.需要申请麦克风权限
使用
<template>
<view class="content">
<button type="primary" @click="startWakeup">开始唤醒</button>
<button type="primary" @click="stopWakeup">停止唤醒</button>
<button type="primary" @click="release">销毁(andorid)</button>
<view>唤醒词:{{word}}</view>
</view>
</template>
<script>
const KJBaiDuSpeech = uni.requireNativePlugin('KJ-BaiDuSpeech');
export default {
data() {
return {
title: 'Hello',
word: ""
}
},
onLoad() {
if (plus.os.name == 'Android') {
plus.android.requestPermissions(
['android.permission.RECORD_AUDIO', //麦克风权限
],
function(resultObj) {
var result = 0;
for (var i = 0; i < resultObj.granted.length; i++) {
var grantedPermission = resultObj.granted[i];
console.log('已获取的权限:' + grantedPermission);
result = 1
}
for (var i = 0; i < resultObj.deniedPresent.length; i++) {
var deniedPresentPermission = resultObj.deniedPresent[i];
console.log('拒绝本次申请的权限:' + deniedPresentPermission);
result = 0
}
for (var i = 0; i < resultObj.deniedAlways.length; i++) {
var deniedAlwaysPermission = resultObj.deniedAlways[i];
console.log('永久拒绝申请的权限:' + deniedAlwaysPermission);
result = -1
}
},
function(error) {
console.log('申请权限错误:' + error.code + " = " + error.message);
}
);
}
},
methods: {
startWakeup() {
var dic = {
"wordsFilePath": plus.io.convertLocalFileSystemURL("static/WakeUp.bin") //改文件内置了“拍照、播放、暂停”唤醒词
}
console.log(JSON.stringify(dic))
KJBaiDuSpeech.startWakeup(dic, (res) => {
console.log("startWakeup: " + JSON.stringify(res));
/**
*ios 返回参数说明:
* workStatus - 状态
* 0(引擎开始工作) 1(引擎关闭完成 2(唤醒引擎加载完成) 3(唤醒引擎卸载完成) 4(命中唤醒词) 5(引擎发生错误)
* aObj - 唤醒词/错误描述
*
* andorid 返回参数说明:
* 1.{"params":{"desc":"Recorder open failed","error":3,"sub_error":3001},"length":0,"name":"wp.error","offset":0}
* 2.{"length":0,"name":"wp.enter","offset":0}
* 3.{"length":0,"name":"wp.ready","offset":0}
* 4.{"params":{"errorCode":0,"word":"暂停","errorDesc":"wakup success"},"length":0,"name":"wp.data","offset":0}
* name - 状态
* wp.enter(进入) wp.ready(开始) wp.data(命中唤醒词) wp.exit(停止) wp.error(错误)
* params - 参数
* word(唤醒词)
* */
if (plus.os.name == 'Android') {
if (res.name == "wp.data") {
this.word = res.params.word
}
} else {
if (res.workStatus == 4) {
this.word = res.aObj
}
}
});
},
stopWakeup() {
KJBaiDuSpeech.stopWakeup();
},
release() {
KJBaiDuSpeech.release();
}
}
}
</script>