赞
踩
微信同声传译插件是微信自研的语音输入,文本翻译等功能的插件封装,用于提供给第三方小程序调用。
官网地址:微信小程序同声转译
在与 pages tabbar 同一级的目录下进行配置:
"plugins": {
"WechatSI": {
"version": "0.3.4",
"provider": "wx069ba97219f66d99"
}
}
// 用户是否授权录音 async handleRecord(){ let scoped = await getSetting("scope.record"); let scopedRecord = await scoped.authSetting('scpoe.record'); if(scopedRecord === undefined){ await authorize("scpoe.record") } if(scopedRecord === false){ await openSetting(); } if(scopedRecord === true){ // 跳转到录音转换界面 wx:navigateTo({ url: "/pages/record/index" }) } }
/* index.js */ // 同声传译 var plugin = requirePlugin("WechatSI"); let manager = plugin.getRecordRecognitionManager(); data: { recordText: "", isTouch: false, isLoading: false }, // 标志位 lock: false; // 初始化 这个插件 initTran(){ let that = this; // 有新的识别内容返回,则会调用此事件 manager.onRecognize = function(res) { console.log(res.result); // 标志位 that.lock = false; let text = res.result; that.setData({ recordText: text, isLoading: false }) } // 识别结束事件 manager.onStop = function(res) { console.log(res.result) // 标志位 that.lock = false; wx.vibrateShort({ success: () => {}, fail: () => {}, complete: () => {}, }) let text = res.result; that.setData({ recordText: text, isLoading: false }) // 如果用户没有说话就提示一下 if (res.result === "") { wx.showToast({ title: '您没有说话', icon: 'none' }); return; } } }, // 按钮的长按事件 async streamRecord(){ // 标志位 this.lock = true; if(this.lock){ // 开始识别 manager.start({ lang: ""zh_CN }); // 微信震动 wx.vibrateShort({ success(){}, fail(){}, }) let isTouch = true; this.setData({ isTouch }) } }, // 松开了 endStreamRecord() { if (this.lock) { // 关闭语音 manager.stop(); let isTouch = false; this.setData({ isTouch, isLoading: true }) } }, // 页面加载的生命周期函数 onLoad(){ this.initTran(); }
下面是 .wxml 文件
<view class="text" wx:if="{{isLoading === true}}">正在玩命识别中...</view>
<view class="text" wx:else>{{isTouch === true ? "我正在听..." : recordText}}</view>
<view class="touch" bindlongpress="streamRecord" catchtouchend="endStreamRecord">
<view class="touchText">请按住后说话</view>
</view>
录音界面的截图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。