微信小程序开发
本实例将会介绍微信小程序中的录音接口,音频接口,以及讯飞语音识别接口,其中,通过nodejs搭建的后台连接微信小程序和讯飞语音实现 “个人语音助理“–
// 获取录音管理器对象
const recorderManager = wx.getRecorderManager();
// 当前页面的对象
let myPage;
// 结束录音的时候自己触发
recorderManager.onStop((res) => {
// 获取到了录音文件的路径
const { tempFilePath } = res;
// console.log(tempFilePath);
console.log("开始发送");
// 把录音发送到后台
wx.uploadFile({
url:"http://yeah126139163.vicp.cc:33071/smart_order",
filePath: tempFilePath,
name:"wx_record",
success:function(r){
// console.log("成功",r);
var result=JSON.parse(r.data);
// 判断返回的状态
if(result.code=="00000"){
console.log(result.data);
switch (result.data.service){
case "weather":
myPage.setData({iSay:result.data.text});
myPage.setData({ xfSay: result.data.answer.text });
sayWord(result.data.answer.text);
break;
default:
break;
}
}else{
// 失败
}
},
fail:function(e){
console.log("失败",e);
}
});
})
function sayWord(msg){
// console.log(msg);
msg=msg.replace(/"/g,"");
wx.request({
url: `http://www.xfyun.cn/herapi/solution/synthesis?vcn=x_xiaofeng&vol=7&spd=medium&textPut=${msg}&textType=cn`,
success:function(r){
// console.log("文字转语音",r);
var result=r.data;
var url=result.data;
myPage.audioCtx.setSrc(url);
myPage.audioCtx.play()
},
fail:function(e){
console.log(e)
}
})
}
Page({
/**
* 页面的初始数据
*/
data: {
iSay:"",
xfSay:""
},
// 按下录音
start_say(){
// console.log(1)
// 开始录音
recorderManager.start();
},
// 结束录音
end_say(){
// console.log(2)
// 结束录音
recorderManager.stop();
},
onReady: function () {
this.audioCtx = wx.createAudioContext('myAudio');
myPage = getCurrentPages()[0]
},
})
资源文件列表
api/index.js , 2862
api/jsons/╠∞╞°.json , 3690
api/jsons/╣π▓Ñ.json , 6323
api/jsons/╨ª╗░.json , 7803
api/node_modules/.bin/mime , 293
api/node_modules/.bin/mime.cmd , 170
api/node_modules/.bin/which , 301
api/node_modules/.bin/which.cmd , 178
api/node_modules/accepts/HISTORY.md , 4736
api/node_modules/accepts/LICENSE , 1167
api/node_modules/accepts/README.md , 4130
api/node_modules/accepts/index.js , 5252
api/node_modules/accepts/package.json , 2307
api/node_modules/array-flatten/LICENSE , 1103
api/node_modules/array-flatten/README.md , 1245
api/node_modules/array-flatten/array-flatten.js , 1195
api/node_modules/array-flatten/package.json , 1685
api/node_modules/async/CHANGELOG.md , 28806
api/node_modules/async/LICENSE , 1063
api/node_modules/async/README.md , 2302
api/node_modules/async/all.js , 1680
api/node_modules/async/allLimit.js , 1545
api/node_modules/async/allSeries.js , 1275
api/node_modules/async/any.js , 1758
api/node_modules/async/anyLimit.js , 1592
api/node_modules/async/anySeries.js , 1314
api/node_modules/async/apply.js , 1843
api/node_modules/async/applyEach.js , 1779
api/node_modules/async/applyEachSeries.js , 1285
api/node_modules/async/asyncify.js , 3500
api/node_modules/async/auto.js , 9844
api/node_modules/async/autoInject.js , 6481
api/node_modules/async/bower.json , 245
api/node_modules/async/cargo.js , 4651
api/node_modules/async/compose.js , 1561
api/node_modules/async/concat.js , 1588
api/node_modules/async/concatLimit.js , 2162
api/node_modules/async/concatSeries.js , 1272
api/node_modules/async/constant.js , 1760
api/node_modules/async/detect.js , 2208
api/node_modules/async/detectLimit.js , 1760
api/node_modules/async/detectSeries.js , 1353
api/node_modules/async/dir.js , 1294
api/node_modules/async/dist/async.js , 184505
api/node_modules/async/dist/async.min.js , 23911
api/node_modules/async/dist/async.min.map , 41102
api/node_modules/async/doDuring.js , 2183
api/node_modules/async/doUntil.js , 1374
api/node_modules/async/doWhilst.js , 2064
api/node_modules/async/during.js , 2201
api/node_modules/async/each.js , 2836
api/node_modules/async/eachLimit.js , 1568
api/node_modules/async/eachOf.js , 3368
api/node_modules/async/eachOfLimit.js , 1418
api/node_modules/async/eachOfSeries.js , 1137
api/node_modules/async/eachSeries.js , 1206
api/node_modules/async/ensureAsync.js , 2515
api/node_modules/async/every.js , 1680
api/node_modules/async/everyLimit.js , 1545
api/node_modules/async/everySeries.js , 1275
api/node_modules/async/filter.js , 1524
api/node_modules/async/filterLimit.js , 1344
api/node_modules/async/filterSeries.js , 1236
api/node_modules/async/find.js , 2208
api/node_modules/async/findLimit.js , 1760
api/node_modules/async/findSeries.js , 1353
api/node_modules/async/foldl.js , 2676
api/node_modules/async/foldr.js , 1536
api/node_modules/async/forEach.js , 2836
api/node_modules/async/forEachLimit.js , 1568
api/node_modules/async/forEachOf.js , 3368
api/node_modules/async/forEachOfLimit.js , 1418
api/node_modules/async/forEachOfSeries.js , 1137
api/node_modules/async/forEachSeries.js , 1206
api/node_modules/async/forever.js , 1941
api/node_modules/async/groupBy.js , 2131
api/node_modules/async/groupByLimit.js , 2379
api/node_modules/async/groupBySeries.js , 1347
api/node_modules/async/index.js , 19503
api/node_modules/async/inject.js , 2676
api/node_modules/async/internal/DoublyLinkedList.js , 2340
api/node_modules/async/internal/applyEach.js , 1056
api/node_modules/async/internal/breakLoop.js , 226
api/node_modules/async/internal/consoleFunc.js , 1227
api/node_modules/async/internal/createTester.js , 1284
api/node_modules/async/internal/doLimit.js , 293
api/node_modules/async/internal/doParallel.js , 600
api/node_modules/async/internal/doParallelLimit.js , 653
api/node_modules/async/internal/eachOfLimit.js , 1912
api/node_modules/async/internal/filter.js , 2174
api/node_modules/async/internal/findGetResult.js , 200
api/node_modules/async/internal/getIterator.js , 307
api/node_modules/async/internal/initialParams.js , 514
api/node_modules/async/internal/iterator.js , 1462
api/node_modules/async/internal/map.js , 903
api/node_modules/async/internal/notId.js , 180
api/node_modules/async/internal/once.js , 312
api/node_modules/async/internal/onlyOnce.js , 361
api/node_modules/async/internal/parallel.js , 1138
api/node_modules/async/internal/queue.js , 5780
api/node_modules/async/internal/reject.js , 541
api/node_modules/async/internal/setImmediate.js , 1021
api/node_modules/async/internal/slice.js , 407
api/node_modules/async/internal/withoutIndex.js , 284
api/node_modules/async/internal/wrapAsync.js , 616
api/node_modules/async/log.js , 1194
api/node_modules/async/map.js , 2081
api/node_modules/async/mapLimit.js , 1314
api/node_modules/async/mapSeries.js , 1209
api/node_modules/async/mapValues.js , 2241
api/node_modules/async/mapValuesLimit.js , 2037
api/node_modules/async/mapValuesSeries.js , 1328
api/node_modules/async/memoize.js , 3232
api/node_modules/async/nextTick.js , 1447
api/node_modules/async/package.json , 3286
api/node_modules/async/parallel.js , 3100
api/node_modules/async/parallelLimit.js , 1422
api/node_modules/async/priorityQueue.js , 3104
api/node_modules/async/queue.js , 5855
api/node_modules/async/race.js , 2162
api/node_modules/async/reduce.js , 2676
api/node_modules/async/reduceRight.js , 1536
api/node_modules/async/reflect.js , 2379
api/node_modules/async/reflectAll.js , 2795
api/node_modules/async/reject.js , 1448
api/node_modules/async/rejectLimit.js , 1266
api/node_modules/async/rejectSeries.js , 1158
api/node_modules/async/retry.js , 5435
api/node_modules/async/retryable.js , 2025
api/node_modules/async/select.js , 1524
api/node_modules/async/selectLimit.js , 1344
api/node_modules/async/selectSeries.js , 1236
api/node_modules/async/seq.js , 2986
api/node_modules/async/series.js , 2937
api/node_modules/async/setImmediate.js , 1389
api/node_modules/async/some.js , 1758
api/node_modules/async/someLimit.js , 1592
api/node_modules/async/someSeries.js , 1314
api/node_modules/async/sortBy.js , 2829
api/node_modules/async/timeout.js , 2776
api/node_modules/async/times.js , 1459
api/node_modules/async/timesLimit.js , 1393
api/node_modules/async/timesSeries.js , 1021
api/node_modules/async/transform.js , 2715
api/node_modules/async/tryEach.js , 2560
api/node_modules/async/unmemoize.js , 681
api/node_modules/async/until.js , 1446
api/node_modules/async/waterfall.js , 3343
api/node_modules/async/whilst.js , 2191
api/node_modules/async/wrapSync.js , 3500
api/node_modules/body-parser/HISTORY.md , 13985
最多只能显示150条信息!
