使用textToSpeech文字转语音,后用getBackgroundAudioManager播放,会一直重复播放
// packageA/pages/csDemo/csDemo.js
const plugin = requirePlugin('WechatSI')
const innerAudioContext = wx.getBackgroundAudioManager();
Page({
/**
* 页面的初始数据
*/
data: {
mapContext: ""
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
// 监听语音结束错误
innerAudioContext.onError((error) => {
console.log('error');
console.log(error);
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
clickHandle() {
var that = this;
let playContent = "信息播报功能已关闭!"
plugin.textToSpeech({
lang: "zh_CN",
tts: true,
content: playContent,
success: function (res) {
that.yuyinPlay(res.filename + '&key=' + Math.random(), playContent);
},
fail: function (res) {
wx.showToast({
title: '语音合成错误!',
icon: 'none',
duration: 2000
})
}
})
},
//播放语音
yuyinPlay: function (src, playContent) {
if (src == '') {
return;
}
innerAudioContext.title = playContent
innerAudioContext.src = src //设置音频地址
innerAudioContext.play(); //播放音频
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})
主要是使用 getBackgroundAudioManager 进行播放就会出这个问题。用 createInnerAudioContext 播放就没有这个问题。有一段时间了都没人处理