记 华为鸿蒙机型小程序使用uni.createInnerAudioContext() 播放音频播放两次的问题

记 华为鸿蒙机型小程序使用uni.createInnerAudioContext() 播放音频播放两次的问题,被这个问题折磨了两天

直接上解决方案demo 代码 主要是红框代码是解决鸿蒙播放两次的问题,播放前先初始化一遍实例,然后赋值音频url,延迟300ms销毁在重新创建实例播放音频就好了

js 复制代码
async play(item) {
                try {
                    const url = await this.getAudioSrc(item);
                    innerAudioContext = uni.createInnerAudioContext();
                    innerAudioContext.src = url;
                    setTimeout(() => {
                        this.pause();
                        innerAudioContext = uni.createInnerAudioContext();
                        innerAudioContext.src = url;
                        innerAudioContext.onPlay(() => {
                            console.log('开始播放');
                        });
                        innerAudioContext.onError((res) => {
                            console.log(res.errMsg);
                            console.log(res.errCode);
                        });
                        innerAudioContext.play();
                    }, 300);
                } catch (error) {
                    //TODO handle the exception
                }
            },
相关推荐
HUANGZHENXUAN1234 小时前
最大子矩阵和:从 O(n⁴) 到 O(n³) 的列压缩 + Kadane
c语言·前端
叼烟扛炮6 小时前
[LangChain] 学习笔记(03):打破失忆症——对话机制与上下文管理
java·前端·javascript·笔记·学习·langchain
IT_陈寒7 小时前
SpringBoot实战技巧总结
前端·人工智能·后端
TeamDev7 小时前
使用 JxBrowser 在桌面应用中集成 Spring
java·前端·后端·spring·混合应用·jxbrowser·浏览器控件
陈随易8 小时前
Rolldown 把插件改动回传提速 26 倍
前端·后端·程序员
笃行35016 小时前
集中式与分布式,KingbaseES 的四种形态共用一套内核
前端
陈随易17 小时前
Vue 编译器换掉 source map,快了三四成
前端·后端·程序员
ZhengEnCi18 小时前
12 种高级 UI 交互效果及对应 AI 提示词:从按压回弹到底部抽屉的物理感教学
前端·css·交互设计
IT_陈寒21 小时前
Redis大key删除为什么会导致服务卡顿?我的线上事故复盘
前端·人工智能·后端
用户2705077725241 天前
MCP 最小 Server 实测:3 个 JSON-RPC 报错与修法
前端