// miniprogram/pages/Dubbing/Dubbing.js var Path='' const myRecord = wx.getRecorderManager() Page({ /** * 页面的初始数据 */ data: { isSpeaking: false,//是否正在说话 voices: [],//音频数组: muted:'false', path:'' }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { Path= options.path; var a=Path.length; Path=Path.substring(0, a - 5) + '.mp4' this.setData({ path: Path//根据图片路径得到相应的视频路径 }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { this.videoContext = wx.createVideoContext('myVideo'); }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, funended: function () { console.log('录音结束'); myRecord.stop(); wx.navigateTo({//视频播放完成自动跳转到预览页面 url: '../previewWork/previewWork?path='+Path, }) }, //预览素材 playingFodder: function () { this.setData({ muted: false }) this.videoContext.play(); }, //重新录音 reDub: function () { myRecord.stop(); this.setData({ isSpeaking: false }); wx.showModal({ title: '提示', content: '重新录音' }); this.startDub(); }, //结束录音 endDub() { this.videoContext.stop(); myRecord.stop(); myRecord.onStop((res) => { getApp().globalData.workPath = res.tempFilePath; }) wx.navigateTo({ url: '../previewWork/previewWork?path=' + Path, }) wx.showToast({ title: '录音结束', icon: 'success', duration: 200 }) }, // 开始录音, startDub: function () { this.videoContext.seek(0); this.videoContext.play(); this.setData({ isSpeaking: true, muted: true, }) const options = { //duration: 10000,//指定录音的时长,单位 ms sampleRate: 16000,//采样率 numberOfChannels: 1,//录音通道数 encodeBitRate: 96000,//编码码率 format: 'mp3',//音频格式,有效值 aac/mp3 frameSize: 50,//指定帧大小,单位 KB } //开始录音 myRecord.start(options); myRecord.onStart(() => { // console.log('recorder start') wx.showToast({ title: '录音成功', duration: 200 }) }); //错误回调 myRecord.onError((res) => { console.log(res); wx.showToast({ title: '录音出错', duration: 200 }) }) }, })