Taro学习-录音、播放功能 发表于 2019-10-21 更新于 2022-05-09 声音处理api的使用 初始化12const voiceReciver = Taro.getRecorderManager()const voicePlayer = Taro.createInnerAudioContext() 增加录音事件1234567891011121314handleStartRecord = () => { let option = { duration: 60000, //录音的时长 format: 'mp3', //录音的格式,有aac和mp3两种 } this.setState({ recording: true},()=> { voiceReciver.start(option) voiceReciver.onStart(() => { console.log('录音开始事件') //这个方法是录音开始事件,你可以写录音开始的时候图片或者页面的变化 }) } ) } 停止录音事件12345678910111213141516handleStopRecord = () => { this.setState({recording: false}, () => { voiceReciver.stop() voiceReciver.onStop((res) => { console.log(res) //这里是必须写完成事件的,因为最后的文件,就在这里面; let time = parseInt(res.duration / 1000); console.log('长度:',time) this.setState({ voice: res, voiceTime: time, }) }) } ) } 播放音频这里有个坑,ios如果开启了静音会没有声音。 12345678910111213handlePlayVoice = () => { let voice = this.state.voice.tempFilePath; voicePlayer.obeyMuteSwitch = false, voicePlayer.autoplay = true voicePlayer.src = voice, voicePlayer.onPlay(() => { console.log('开始播放') }) voicePlayer.onError((res) => { console.log(res.errMsg) console.log(res.errCode) }) }