uni-app createInnerAudioContext 不能创建多个播放音频
uni-app createInnerAudioContext 不能创建多个播放音频
| 项目 | 内容 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.3.10 |
| 手机系统 | Android |
| 手机系统版本号 | Android 7.0 |
| 手机厂商 | 华为 |
| 手机机型 | 荣耀 |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
bug描述:
安卓InnerAudioContext 不能同时播放多个音频,3.3.3本已修复,3.3.10复现。
示例代码:
<template>
<view>
</view>
</template>
<script>
var innerAudioContext1 = null;
var innerAudioContext2 = null;
export default {
data() {
return {
};
},
onReady() {
innerAudioContext1 = uni.createInnerAudioContext();
innerAudioContext2 = uni.createInnerAudioContext();
innerAudioContext1.autoplay = true;
innerAudioContext1.volume = 1;
innerAudioContext2.autoplay = true;
innerAudioContext2.volume = 1;
innerAudioContext1.src = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3';
innerAudioContext2.src = 'https://qieryi.oss-cn-shenzhen.aliyuncs.com/test/audio/8sx6dSSC4d.mp3';
innerAudioContext1.play();
innerAudioContext2.play();
innerAudioContext1.onPlay(() => {
console.log('开始播放1');
});
innerAudioContext2.onPlay(() => {
console.log('开始播放2');
});
},
methods: {
}
};
</script>
<style>
</style>
更多关于uni-app createInnerAudioContext 不能创建多个播放音频的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3.3.3 新增同时播放多个音频引发了其他问题,3.3.10 以后默认不开启此功能,需要手动设置
let audio = uni.createInnerAudioContext();
audio.sessionCategory = “ambient”
sessionCategory 可取值:
“ambient” - 不中止其他声音播放,不能后台播放,静音后无声音;
“soloAmbient” - 中止其他声音播放,不能后台播放,静音后无声音;
“playback” - 中止其他声音,可以后台播放,静音后有声音。
更多关于uni-app createInnerAudioContext 不能创建多个播放音频的实战教程也可以访问 https://www.itying.com/category-93-b0.html
好的,谢谢
如果用这个同时播放,还会引发什么问题啊?大佬可以说下吗?
audio.sessionCategory = “ambient” 还是会终止其他播放
引发问题是指什么?
Android平台目前的实现有问题,不能同时播放多个音频应该是应用之间的互斥,而不是应用内部
我们后续会修复,修复后就不存在不能同时播放多个音频的概念了
好的,麻烦了,我是说大佬你刚刚说的3.3.3 新增同时播放多个音频引发了其他问题 是什么问题,我看下我们这里能不能避开这个问题
回复 6***@qq.com: 影响了iOS的静音物理开关,已修复了
sessionCategory = “ambient” 在app上还是不行 会中止其他声音播放
华为p30 鸿蒙2.0
uni.createInnerAudioContext()可以同时创建多个音频对象吗?
问题:后台不提供音频时长需自取,多条音频时长统计咋处理?
想法:页面加载时重复创建销毁过程拿到所有音频对象时长信息并记录
请问大佬还有别的思路吗?比如src可以接受数组类型,返回的对象包含所有音频的相关信息并且能被监听到
都3.8.7了,sessionCategory = “ambient” 在app上还是不行 会中止其他声音播放
audio.sessionCategory = “ambient” 还是会终止其他播放
你也遇到一样的问题了吗,真垃圾,到现在也没人出来解决
回复 爱吃鱼的靖哥哥: 咋办啊 老板骂我是垃圾
回复 r***@foxmail.com: 别提了,我都被骂离职了,坑爹的uniapp
+1
audio.sessionCategory = “ambient” 还是会终止其他播放
+1
audio.sessionCategory = “ambient” 还是会终止其他播放
有啥替代方法吗
兄弟解决了吗
回复 1***@qq.com: 大哥有解决方案吗
audio.sessionCategory = “ambient” 还是会终止其他播放
官方的为啥不出来处理这个bug
4.23
audio.sessionCategory = “ambient” 还是会终止其他播放
喜报,2025年了,Android APP上还没解决这个问题。
别等了,这辈子应该是不会解决了
使用const audio = plus.audio.createPlayer(url); audio.setSessionCategory(“ambient”); audio.play();//可以是在线音频,本地音频需要在绝对路径前加上 http://localhost
//setSessionCategory取值:
//“ambient” - 不中止其他声音播放,不能后台播放,静音后无声音;
//“soloAmbient” - 中止其他声音播放,不能后台播放,静音后无声音;
//“playback” - 中止其他声音,可以后台播放,静音后有声音。 默认值为"playback".100%可以解决
回复 1***@qq.com: 调节音量怎么做呢?可否用audio.volume = audio.value / 100;百分比音量来做?
使用const audio = plus.audio.createPlayer(url);
audio.setSessionCategory(“ambient”);
audio.play();//可以是在线音频,本地音频需要在绝对路径前加上 http://localhost
//setSessionCategory取值:
//“ambient” - 不中止其他声音播放,不能后台播放,静音后无声音;
//“soloAmbient” - 中止其他声音播放,不能后台播放,静音后无声音;
//“playback” - 中止其他声音,可以后台播放,静音后有声音。 默认值为"playback".100%可以解决


