這兩天用taro2寫了個小程序援岩,其中用到了微信小程序中的同聲傳譯插件殃姓,記錄一下配置的過程。
1涝滴、需要在app.jsx中配置插件涮瞻。
config = {
pages: [
'pages/index/index'
],
window: {
backgroundTextStyle: 'light',
navigationBarBackgroundColor: '#fff',
navigationBarTitleText: 'WeChat',
navigationBarTextStyle: 'black'
},
"plugins": {
"WechatSI": {
"version": "0.3.3",
"provider": "wx069ba97219f66d99"
}
}
}
2曹傀、初始化插件。
const plugin = requirePlugin("WechatSI")
// // 獲取**全局唯一**的語音識別管理器**recordRecoManager**
const manager = plugin.getRecordRecognitionManager()
3饲宛、編寫初始化(init)、開始錄音(start)嗜价、結(jié)束錄音(end)三個方法艇抠。
//開始錄音
start = (e) => {
console.log('start')
manager.start({
duration: 30000, lang: "zh_CN"
})
this.setState({
loading:true,
disabled:true
})
Taro.atMessage({
'message': '正在聆聽...',
})
}
//結(jié)束錄音
end = (e) => {
console.log('end')
manager.stop()
this.setState({
loading:false
})
}
//初始化
initRecord= () => {
var that = this
//當調(diào)用manager.stop()后回調(diào)manager.onStop得到識別結(jié)果res.result
manager.onStop = (res) => {
let text = res.result
if(text == '') {
Taro.atMessage({
'message': '沒聽清您的話幕庐!',
type:'error'
})
this.setState({
disabled:false
})
return
}
this.setState({
keyword : res.result
})
this.setState({
disabled:false
})
}
}
4、在render中放入按鈕家淤。
<Button
className='btn'
size='normal'
loading={loading}
disabled={disabled}
onTouchStart={this.start}
onTouchEnd={this.end}>
語音搜索
</Button>
參考:
文檔
github demo