IDE 能正常播放,真机播放就会出先这个问题,IOS 、Android 都有这个问题,微信版本:8.0.50。
WechatSI 文本语音合成,用背景播放会重复播放并报错?语音合成后,用 getBackgroundAudioManager 进行播放,会出现重复播放最后几个文字,然后弹出一个 toast 的错误信息。 onError 给出的错误码:errorCode: 0。 [图片][图片] ``` js const app = getApp() let plugin = requirePlugin('WechatSI'); Page({ data: { audioUrl: '', backgroundAudioContext: null, innerAudioContext: null }, onLoad() { this.backgroundAudioContext = wx.getBackgroundAudioManager(); this.backgroundAudioContext.title = '背景播放'; this.innerAudioContext = wx.createInnerAudioContext(); plugin.textToSpeech({ lang: 'zh_CN', tts: true, content: '语音合成重复播放问题', success: res => { if (res.retcode == 0) { this.audioUrl = res.filename; } else { } }, fail: res => { } }); }, playBackgroundAudio() { this.backgroundAudioContext.src = this.audioUrl; this.backgroundAudioContext.play(); }, playInnerAudio() { this.innerAudioContext.src = this.audioUrl; this.innerAudioContext.play(); } }) ``` ``` wxml <navigation-bar title="Weixin" back="{{false}}" color="black" background="#FFF"></navigation-bar> <scroll-view class="scroll-area" type="list" scroll-y> <view class="intro">欢迎使用代码片段,可在控制台查看代码片段的说明和文档</view> <button bind:tap="playBackgroundAudio">播放 background audio</button> <button bind:tap="playInnerAudio">播放 inner audio</button> </scroll-view> ```
09-02主要是使用 getBackgroundAudioManager 进行播放就会出这个问题。用 createInnerAudioContext 播放就没有这个问题。有一段时间了都没人处理
发现大Bug,请看一下。语音合成,重复播放问题?使用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() { } })
09-02您好,请问这个问题有解决吗?我这边尝试了很多,使用其他链接的mp3进行播放时正常没有问题的,只要是用了 WechatSI 插件的语音合成,进行播放就会重复播放,并且会抛出一个错误,错误码为0。然后尝试使用 createInnerAudioContext 进行播放,又是正常的。 [图片][图片]
通过语音合成之后,会重复播放的问题?使用textToSpeech将文字转成语音,后用getBackgroundAudioManager播放,会反复播报
09-02我的提审都已经过了,全都发布了
小程序发布好,准备回家,然后跟我说计划推迟?[图片] 所以我现在要不要回滚代码呢? 到底怎么说? 今天8点38分,原本明天就要上了,真的栓Q了 然后发现,昨天提的,还有个还在审核中。。。23333 不审了,告辞~ [图片]
2023-09-15使用 wx.getEnterOptionsSync() 方法进行获取,getLaunchOptionsSync 方法在小程序初始化时的参数,在 小程序b 没有被销毁之前,再次从a到b拿到的参数,始终是b初始化时的参数,所以需要使用getEnterOptionsSync 方法来实时获取从 a 跳转到 b 小程序传递的参数。
onShow的问题,getLaunchOptionsSync()二次进入取不到启动参数?场景如下:a小程序跳转带参进入b小程序;此时小程序b能正确接收到a传来的参数;在b小程序单击返回,返回到a的小程序;再a里面重新单击跳转进入b小程序(此时跳转参数已经变化),小程序b里面接收到的还是上一次参数?请问这种问题怎么解决?在onShow里面使用的getLaunchOptionsSync取启动参数;
2021-02-25