起風了
起風了
  • 发布:2021-06-04 17:20
  • 更新:2021-12-20 09:51
  • 阅读:4088

uni-app音频播放没声音问题

分类:uni-app

uni-app打包的Android App,按钮触发播放,在多次播放后(不确定多少次,每次都不一样),就会出现没声音的情况,然后把app重启了之后就又有声音了.

addCode(result) {  
                if (this.codes.includes(result)) {  
                    // 发出重复扫码的提示音  
                    // 优先判断是否重复扫码(避免产品流速过快,想要确定哪个产品是这一箱的最后扫的一个产品都不可以)  
                    // 不要弹窗需要确认的提示弹窗,因为流水线不会停下来让用户按那个返回  
                    console.log('重复扫码,播放失败声音')  
                    const failAudio = uni.createInnerAudioContext();  
                    failAudio.src = '/static/sound/fail.mp3'  
                    failAudio.play()  
                    // failAudio.destroy()  
                    this.$refs.uToast.show({  
                        title: `提示: 重复扫码(${result})`,  
                        type: 'error'  
                    })  
                } else {  
                    const itemData = this.$refs.detailForm.getFieldsValue()  
                    // 判断是否整箱,是否扫满  
                    console.log('个数', itemData.pack_conversion, this.codes.length)  
                    if (this.codes.length >= itemData.pack_conversion) {  
                        console.log('已经完成所有扫码,播放失败声音')  
                        const failAudio = uni.createInnerAudioContext();  
                        failAudio.src = '/static/sound/fail.mp3'  
                        failAudio.play()  
                        // failAudio.destroy()  
                        this.$refs.uToast.show({  
                            title: `提示: 已完成整箱扫码,不能再录入(${result})`,  
                            type: 'error'  
                        })  
                        return false  
                    }  
                    this.codes.unshift(result)  
                    if (itemData.box_type !== 2 && (Number(itemData.pack_conversion) === this.codes.length)) {  
                        console.log('扫码完成,播放完成声音')  
                        const completeAudio = uni.createInnerAudioContext();  
                        completeAudio.src = '/static/sound/complete.mp3'  
                        completeAudio.play()  
                        // completeAudio.destroy()  
                        this.$refs.uToast.show({  
                            title: `提示: 已完成所有扫码(${result})`,  
                            type: 'success'  
                        })  
                    } else {  
                        const successAudio1 = uni.createInnerAudioContext();  
                        console.log('扫码成功,播放成功声音')  
                        successAudio1.src = '/static/sound/success_1.mp3'  
                        successAudio1.play()  
                        this.$refs.uToast.show({  
                            title: `提示: 录入成功(${result})`,  
                            type: 'primary'  
                        })  
                    }  
                }  
            },
2021-06-04 17:20 负责人:无 分享
已邀请:
DCloud_UNI_LXH

DCloud_UNI_LXH

在播放结束后销毁当前示例试试还会有这个问题吗?

Audio.onEnded(function() {        
    Audio.destroy();    
});
  • 起風了 (作者)

    试了,暂时没有用户反映这个问题.

    2021-06-29 11:22

  • 2***@qq.com

    回复 起風了: 在播放结束后销毁当前实例,还是一会播放有声音,一会播放没声音,醉了,不知道到底因为啥,昨天下班之前没声音,下班回家之后app再发语音就有声音了,早上试了也有声音,刚刚新发的语音还有声音,现在新发的又没有声音了

    2023-08-04 17:04

3***@qq.com

3***@qq.com

我也遇到了 扫码成功提示了十几次 音效就没有了 有解决方案么?

  • 起風了 (作者)

    就是楼上说的那样,每次play之后都把播放的销毁.


                            successAudio1.play()  
    successAudio1.onEnded(() => {
    successAudio1.destroy()
    })

    2022-05-30 17:56

该问题目前已经被锁定, 无法添加新回复