typ1758
typ1758
  • 发布:2019-11-15 11:59
  • 更新:2019-11-15 17:11
  • 阅读:1954

【报Bug】请问音频组件uni.createInnerAudioContext(),播放声音,来回切换10+次就没有声音了

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]

重现步骤

uni.createInnerAudioContext(),来回切换声音,10+就没得声音了,往回复,十万火急!十万火急!十万火急!

[步骤]

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式是老模板模式还是新的自定义组件模式?]

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2019-11-15 11:59 负责人:无 分享
已邀请:
typ1758

typ1758 (作者)

比如点击图一的玩法菜单,弹出图二的弹出框,两个都有不同的声效,在手机上频繁的来回切换,10次+后就没得声音了,代码图三

mdf

mdf - 四万多

早就有这个问题了,我目前自己的解决方法是,监听已经进行的播放事件是否已经执行完,如果没执行完。不创建或者更改 正在播放的事件的任何参数。方法可能比较low 但是我这样 是可以正常运行的 Vue.prototype.$playAudio=(url)=>{

let playing=uni.getStorageSync('playing');  
if(playing=="1"){  

}else{  
    uni.setStorageSync("playing","1");  
    let innerAudioContext = plus.audio.createPlayer(url);  
    innerAudioContext.play();  
    setTimeout(function(){  
        let num=innerAudioContext.getDuration() * 1000  
        setTimeout(function() {  

            innerAudioContext.close()  
        }, num);  
        setTimeout(function() {  

            uni.setStorageSync("playing","0");  
        }, parseInt(num)+parseInt(100));  
    },100)  
}  

}

typ1758

typ1758 (作者)

我还用了插件https://ext.dcloud.net.cn/plugin?id=395,在3台安卓上都有测试,都出现了这个问题,往回复谢谢

  • mdf

    个人认为是这个播放会创建多个对象,重复执行导致卡死的

    2019-11-15 17:22

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