const AIAudioContext = uni.createInnerAudioContext();
AIAudioContext.src = url; // 设置本地音频路径
AIAudioContext.play();
AIAudioContext.onEnded = () => {
console.log('播放结束onEnded')
onEnd();
};
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: Apple M2;MacOS 14.5 (23F79)
HBuilderX类型: 正式
HBuilderX版本号: 4.36
手机系统: Android
手机系统版本号: Android 13
手机厂商: OPPO
手机机型: OnePlus 8/安卓平板
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
const AIAudioContext = uni.createInnerAudioContext();
AIAudioContext.src = url; // 设置本地音频路径
AIAudioContext.play();
AIAudioContext.onEnded = () => {
console.log('播放结束onEnded')
onEnd();
};
1、播放一个音频
2、音频播放结束
3、没有触发 onEnded
1、音频播放结束触发onEnded,或者有其他事件可以判断音频播放结束?
1、音频播放结束完全没有触发onEnded
1、uni.createInnerAudioContext() 播放结束,没有触发onEnded
2、为什么不会触发,那我怎么去监听音频播放结束,开始下一个音频播放?
DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
你好,我使用下面的代码,使用 HBuilderX alpha 4.45, vue3,安卓 15,小米 13 运行正常,可以正确触发 play/seek/end,音频长度 175s,你可以基于我提供的代码指出如何修改和复现。
<template>
<view>
<button @click="onPlay">play</button>
</view>
</template>
<script>
export default {
onLoad() {
const auctx = uni.createInnerAudioContext()
this.auCtx = auctx
auctx.src = 'https://web-ext-storage.dcloud.net.cn/uni-app/ForElise.mp3'
auctx.onPlay(() => {
console.log('开始播放');
});
auctx.onError((res) => {
console.log('on error');
console.log(res.errMsg);
console.log(res.errCode);
});
auctx.onEnded((e)=>{
console.log('onend',e);
})
auctx.onSeeking(e=>{
console.log('on seeking',e);
})
auctx.onSeeked(e=>{
console.log('on onSeeked',e);
})
},
methods:{
onPlay(){
this.auCtx.play()
setTimeout(()=>{
this.auCtx.seek(170)
},1000)
}
}
}
</script>
菜菜2 (作者)
seek的触发不包括 拖动进度条吗
2025-01-13 14:00
DCloud_UNI_OttoJi
回复 菜菜2: 没理解,这是纯 js 播放和拖动,没有 ui 页面怎么拖动?我 seek 是为了快点让音频播放结束,早点触发 onEnd
2025-01-13 20:39
DCloud_UNI_OttoJi
我 seek 170 秒是为了快速到播放的最后几秒,你根据我这个改改
2025-01-13 20:40
菜菜2 (作者)
回复 DCloud_UNI_OttoJi: 抱歉,我问错问题了,这个音频播放结束能正常触发 onEnded 了
2025-01-16 17:32