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

32 回复

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” 还是会终止其他播放

感觉他们缺音频这方面的开发人才,这个音频播放API问题很多,Android 播放 mp3 调用 seek 会有播放延时,也一直都不修复

喜报,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%可以解决

回到顶部