记 华为鸿蒙机型小程序使用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
                }
            },
相关推荐
云和数据.ChenGuang7 分钟前
print(f“a+b=“,result) print(f“a+b={result}“)区别
java·前端·人工智能·python·深度学习
速易达网络22 分钟前
基于 Vue3 + Flask + ECharts 构建政务 OA 系统门户
前端·echarts·政务
何何____31 分钟前
TypeScript 函数类型兼容性
前端·javascript·typescript
雪芽蓝域zzs41 分钟前
json数据转化成interface属性
前端·javascript·json
Java小卷44 分钟前
Vue3 动态表单支持弹框组件
前端·vue.js·低代码
溪语流沙1 小时前
【Web全栈进阶】前端对接新契约:信封解包 + 统一错误处理
前端·vue.js·python·状态模式·fastapi
国服第二切图仔1 小时前
Chrome 插件开发实战指南:从入门到发布
前端·chrome
鬼手点金1 小时前
ReAct 循环
linux·服务器·前端·javascript·react.js·前端框架
鬼手点金2 小时前
上下文:Agent 的眼睛
java·前端·人工智能·git·深度学习