时间:2019-05-03 来源:小程序工厂
J***:
你好,请提供一下能复现问题的简单代码示例。
d***:
这边是触发的。
这个的是调用播放的
自定义组件wxss选择器问题 微信小程序开发
d***:
这个是播放按钮的动作。
这个的是监听播放的
d***:
我是做录音然后播放的,录完,点击播放,现在是点击多少次那个录音按钮就会调用多少次onplay(),我后面每一次点击都会增加一次
J***:
你这里重设了src,点击多少次录音按钮就调用多少次onplay是正常的。
哪位大神帮忙解决下?
d***:
按你这么说,我第一次播放也应该只调用onplay()一次吧,但是我这边第一次就三次了
J***:
方不方便提供下微信版本号,机型和基础库版本,和完整能复现问题的例子?我这边尝试复现下触发3次的问题。
d***:
真机微信版本是最新的,开发工具也是最新的,机型测过5s 、6,基础版本库1.60.
这段是wxml的内容
const recorderManager = wx.getRecorderManager();
const innerAudioContext = wx.createInnerAudioContext();
// pages/test/test.js
Page({
/**
* 页面的初始数据
*/
data: {
record_status: '未录音'
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
record: function() {
var that = this;
var record_status = that.data.record_status;
if (record_status === '未录音') {
recorderManager.start({
duration: 60000,
sampleRate: 44100,
numberOfChannels: 1,
encodeBitRate: 192000,
format: 'mp3',
frameSize: 50
})
record_status = '录音中'
} else if (record_status === '录音中') {
recorderManager.stop();
} else if (record_status === '录音结束') {
innerAudioContext.src = that.data.recorderPath.tempFilePath;
innerAudioContext.play();
} else if (record_status === '录音播放中') {
innerAudioContext.stop();
}
recorderManager.onStop((res) => {
record_status = '录音结束';
console.log(res);
that.setData({
record_status: record_status,
recorderPath: res
})
});
innerAudioContext.onPlay(() => {
console.log('录音播放中');
record_status = '录音播放中';
that.setData({
record_status: record_status
})
})
innerAudioContext.onStop(() => {
console.log('录音播放停止');
record_status = '录音播放停止';
innerAudioContext.destroy();
that.setData({
record_status: record_status
})
})
innerAudioContext.onEnded(() => {
console.log('录音播放结束');
record_status = '录音播放结束';
innerAudioContext.destroy();
that.setData({