详细问题描述
同时创建多个uni.createInnerAudioContext()会导致bug详情请见代码和录像。
安卓录像地址:https://v.youku.com/v_show/id_XNDYwMzE2NjIyMA==.html
iPad录像地址:https://v.youku.com/v_show/id_XNDYxMTgwOTE3Ng==.html
录像密码:12345678
附件里附上音频文件一长一短。
IDE运行环境说明
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
[IDE版本号]
HBuildX 2.6.7.20200326-alpha
[mac版本号]
macOS Catalina 10.15.3 (19D76)
uni-app运行环境说明
[运行端是h5或app或某个小程序?]
app
[运行端版本号]
编译器版本:2.6.5
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX
[编译模式说明:自定义组件模式?纯nvue模式?v3模式?]
v3
App运行环境说明
[Android版本号]
7.0
[iOS版本号]
iPad OS 13.3.1
[手机型号]
IPad 2018 / 三星 Galaxy Note5
附件
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
// 点击播放按钮再点击播放2按钮再点击播放按钮重复点击有的时候音频会不播放,有概率不触发音频。
<template>
<view class="content">
<button @click="play">
播放
</button>
<button @click="play2" style="margin-top: 50upx;">
播放2
</button>
</view>
</template>
<script>
let audioContext1 = uni.createInnerAudioContext();
audioContext1.autoplay = false;
audioContext1.src = "/static/3.mp3";
audioContext1.onPlay(() => {
console.log('开始播放');
});
audioContext1.onError((res) => {
console.log(res.errMsg);
console.log(res.errCode);
});
let audioContext2 = uni.createInnerAudioContext();
audioContext2.autoplay = false;
audioContext2.src = "/static/1.mp3";
export default {
data() {
return {
title: 'Hello'
}
},
methods: {
play() {
audioContext1.play();
audioContext2.stop(); // 注释掉这两句就会变正常
},
play2() {
audioContext1.stop();
audioContext2.play(); // 注释掉这两句就会变正常
}
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
</style>