记 华为鸿蒙机型小程序使用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
                }
            },
相关推荐
hunterandroid22 分钟前
[Android 从零到一] Compose LazyColumn 性能优化:key、稳定性与重组治理
android·前端
lichenyang45330 分钟前
从一次团队邀请开始:用 React、NestJS 与 Socket.IO 做可靠的实时通知
前端
vtian31 分钟前
一篇文章吃透 Monorepo:pnpm + Turborepo + Changesets 全流程实战(含 8 个踩坑)
前端
默_笙36 分钟前
❗ 点击计数按钮,为什么"峨眉队"也跟着重新渲染?React.memo 说:我记住了
前端·javascript
31535669131 小时前
DeepSeek Harness 发布后,我没急着跑 Demo,先把 `.agents/` 翻了一遍
前端·后端·github
名字还没想好☜1 小时前
Next.js 用 Server Components 直连数据库:去掉 API 层的边界,和三条别踩的安全红线
前端·javascript·数据库·安全·react·next.js
学习zhao极致it1 小时前
2020全新React教程全家桶实战redux+antd+React Hooks前端js视频
前端
用户921080262861 小时前
Bubble 消息操作区改造:复制、重新生成和反馈
前端
LEE1 小时前
AI Agent 都在疯狂加功能,它说:我全砍了
前端·后端
张清悠1 小时前
用 TRAE Work 把 PRD + 设计稿注释,整理成 20 分钟可排期前端任务清单
前端