使用之前首先得在微信微信小程序后台添加插件,獲取插件的appid 名稱
使用時在app.json文件添加插件配置
1 plugins: { 2 WechatSI: { 3 version: '0.1.0', 4 provider: 'wx069ba97219f66d99' 5 } 6 }
其次就是在使用的頁面進行調用
在index.js外部定義插件,並引入
// 語音轉文字 var plugin = requirePlugin('WechatSI') let manager = plugin.getRecordRecognitionManager()
其中的getRecordRecognitionManager()方法是可以直接使用
wx.getRecordRecognitionManager()進行實例內部調用
// 檢測是否有語音並進行識別 manager.onRecognize = function (res) { console.log('current result==', res.result) // 識別成功,停止識別 manager.stop() } manager.onStart = function (res) { console.log('錄音狀態==', res.msg) } // 錄音結束時,再次啟動錄音 manager.onStop = function (res) { console.log('record file path', res.tempFilePath) // 停止識別,獲取最后識別的結果 console.log('result', res.result) // 如果識別的內容為空,則不加以其他邏輯處理減少后台交互 if (res.result !== '') { // 如果語音識別內容為空時 _this.sendMessage(res.result) } // 判斷是否需要重啟識別 if (_this.isIdentify) { // 啟動識別的必要參數設置 manager.start({ duration: 30000, lang: 'zh_CN' }) } } manager.onError = function (res) { console.error('error msg', res.msg) }
需要的注意的是,本地調試時,manager.start() 事件需要在初始觸發是,需要在頁面渲染完畢后才能開啟,否則會導致不知名報錯,
我們的項目暫時使用的wepy開發,所以對於使用了自定義的promise
需要進行特殊處理。處理辦法就是修改

詳情參照問題解決方案

