详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
重现步骤
let appInnerAudioContext = uni.getBackgroundAudioManager();
appInnerAudioContext .onWaiting(function(e) {
console.log('等待');
self.appInnerAudioContext.pause()
self.radioLoading = true;
})
appInnerAudioContext .onCanplay(function(e) {
console.log('等待');
self.appInnerAudioContext.play()
self.radioLoading = false;
})
[步骤]
[结果]
onCanplay 没有在 缓冲完毕后 执行
[期望]
在 缓冲完毕后 能触发 onCanPlay
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
[IDE版本号]
2.6.16.20200424
[windows版本号]
windows 10
[mac版本号]
uni-app运行环境说明
Redmi K20 Pro
[运行端是h5或app或某个小程序?]
app
[运行端版本号]
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
[编译模式说明:自定义组件模式?纯nvue模式?v3模式?]
App运行环境说明
[Android版本号]
MUI 11.0.8
[iOS版本号]
[手机型号]
MUI 11.0.8
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
/*
radioInit(radioObj) {
// #ifdef APP-PLUS
// 添加音频对象的事件监听
function addListen() {
console.log('添加音频播放监听');
self.appInnerAudioContext.src = radioObj.media_url;
self.appInnerAudioContext.pause();
setTimeout(() => {
self.starTime = self.appInnerAudioContext.currentTime;
self.endTime = self.appInnerAudioContext.duration;
console.log(self.appInnerAudioContext.duration);
console.log(self.starTime);
console.log(self.endTime);
}, 1000);
console.log("监听播放就绪")
self.appInnerAudioContext.onCanplay(function() {
console.log('播放准备');
// self.SET_RADIOSTATE(true);
});
self.appInnerAudioContext.onPlay(function() {
console.log('播放');
self.SET_RADIOSTATE(true);
});
self.appInnerAudioContext.onPause(function() {
console.log('暂停');
self.SET_RADIOSTATE(false);
});
self.appInnerAudioContext.onStop(function() {
console.log('停止');
});
self.appInnerAudioContext.onTimeUpdate(function(e) {
// console.log("播放")
self.radioLoading = false;
self.starTime = self.appInnerAudioContext.currentTime;
});
self.appInnerAudioContext.onError(function(errCode) {
uni.showToast({
title: '播放出错,即将跳到下一个电台!',
icon: 'none'
});
console.log('播放出错' + JSON.stringify(errCode));
self.nextRadio();
});
self.appInnerAudioContext.onWaiting(function(e) {
console.log('等待');
self.appInnerAudioContext.pause()
self.waitTimeId = setTimeout(() => {
self.appInnerAudioContext.play();
}, 2000);
self.radioLoading = true;
});
self.appInnerAudioContext.onEnded(function(e) {
console.log('播放完毕');
self.nextRadio();
});
}
if (self.appInnerAudioContext) {
addListen();
} else {
let appInnerAudioContext = uni.getBackgroundAudioManager();
self.SER_APPINNERAUDIOCONTEXT(appInnerAudioContext);
addListen();
}
// #endif
}
联系方式
17671466586
[QQ]
1061393421
4 个回复
fatesgo
我也是这个事件不会触发
潘毅康 - pyk
这个方法我也是触发不了onCanplay,运行到小程序没问题,app就有问题
jxtian
确认bug,等待修复
奥利奥饼干
刚遇到, 我看问题是20年提出的, 现在还有这个问题吗?
2023-06-20 15:50
奥利奥饼干
楼主解决了吗