BackgroundAudioManager errCode 10003
这是一个部分用户触发的错误,地区国内。故无法提供可重现的代码,实在抱歉。 # 我们的测试方法 用户遇到播放错误,且更换地址重试3次都无法解决是,会提示用户,并请示到【测试界面】。 我们预先准备了4个播放地址(mp3和mp4格式),分别对 BackgroundAudioManager 和 InnerAudioContext 进行测试。 触发过 time-update 事件则标记为 【正常】并结束测试;触发过 error 事件则标记为 【异常】并结束测试。 # 我们测试代码: a. BackgroundAudioManager版本 ⬇⬇⬇⬇⬇⬇ [代码]Component({[代码][代码] [代码][代码]properties: {[代码][代码] [代码][代码]source: {[代码][代码] [代码][代码]type: Object,[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]methods: {[代码][代码] [代码][代码]nativePlayData() {[代码][代码] [代码][代码]const self = [代码][代码]this[代码][代码];[代码][代码] [代码][代码]const data = [代码][代码]this[代码][代码].data.source;[代码][代码] [代码][代码]const backgroundAudioManager = wx.getBackgroundAudioManager();[代码] [代码] [代码][代码]this[代码][代码].ctx = backgroundAudioManager;[代码] [代码] [代码][代码]backgroundAudioManager.title = [代码][代码]'测试音频'[代码][代码] [代码][代码]backgroundAudioManager.epname = [代码][代码]''[代码][代码];[代码][代码] [代码][代码]backgroundAudioManager.singer = [代码][代码]''[代码][代码];[代码][代码] [代码][代码]backgroundAudioManager.coverImgUrl = data.shelfPicture;[代码][代码] [代码][代码]backgroundAudioManager.src = data.playUrl;[代码] [代码] [代码][代码]backgroundAudioManager.onTimeUpdate([代码][代码]this[代码][代码].updateHandler = [代码][代码]function[代码][代码](e) {[代码][代码] [代码][代码]self.triggerEvent([代码][代码]'time-update'[代码][代码], e);[代码][代码] [代码][代码]});[代码] [代码] [代码][代码]backgroundAudioManager.onError([代码][代码]this[代码][代码].errorHandler = [代码][代码]function[代码][代码](res) {[代码][代码] [代码][代码]self.triggerEvent([代码][代码]'audio-error'[代码][代码], {code: res.errCode, text: res.errCode + res.errMsg});[代码][代码] [代码][代码]});[代码][代码] [代码][代码]},[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]ready() {[代码][代码] [代码][代码]this[代码][代码].nativePlayData();[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]detached() {[代码][代码] [代码][代码]this[代码][代码].ctx.stop();[代码][代码] [代码][代码]}[代码][代码]});[代码] b. InnerAudioContext版本 ⬇⬇⬇⬇⬇⬇ [代码]Component({[代码][代码] [代码][代码]properties: {[代码][代码] [代码][代码]source: {[代码][代码] [代码][代码]type: Object,[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]methods: {[代码][代码] [代码][代码]nativePlayData() {[代码][代码] [代码][代码]const self = [代码][代码]this[代码][代码];[代码][代码] [代码][代码]const data = [代码][代码]this[代码][代码].data.source;[代码][代码] [代码][代码]const innerAudioContext = wx.createInnerAudioContext();[代码] [代码] [代码][代码]this[代码][代码].ctx = innerAudioContext;[代码][代码] [代码][代码]innerAudioContext.autoplay = [代码][代码]true[代码][代码];[代码][代码] [代码][代码]innerAudioContext.src = data.playUrl;[代码] [代码] [代码][代码]innerAudioContext.onTimeUpdate([代码][代码]this[代码][代码].updateHandler = [代码][代码]function[代码][代码](e) {[代码][代码] [代码][代码]self.triggerEvent([代码][代码]'time-update'[代码][代码], e);[代码][代码] [代码][代码]});[代码] [代码] [代码][代码]innerAudioContext.onError([代码][代码]this[代码][代码].errorHandler = [代码][代码]function[代码][代码](res) {[代码][代码] [代码][代码]self.triggerEvent([代码][代码]'audio-error'[代码][代码], {code: res.errCode, text: res.errCode + res.errMsg});[代码][代码] [代码][代码]});[代码][代码] [代码][代码]},[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]ready() {[代码][代码] [代码][代码]this[代码][代码].nativePlayData();[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]detached() {[代码][代码] [代码][代码]this[代码][代码].ctx.stop();[代码] [代码] [代码][代码]try[代码] [代码]{[代码][代码] [代码][代码]this[代码][代码].ctx.offError([代码][代码]this[代码][代码].errorHandler);[代码][代码] [代码][代码]} [代码][代码]catch[代码] [代码](e) {}[代码] [代码] [代码][代码]try[代码] [代码]{[代码][代码] [代码][代码]this[代码][代码].ctx.offTimeUpdate([代码][代码]this[代码][代码].updateHandler);[代码][代码] [代码][代码]} [代码][代码]catch[代码] [代码](e) {}[代码][代码] [代码][代码]}[代码][代码]});[代码] # 用户检测结果: [图片] 下面是经过我们半个月的持续观察,总结出来的信息,希望能帮助找出问题。 每天影响用户0.2~1%不等。 用户不可以播放的时候,影响时长为0.5~5天不等。 跟网络也有一定关系,之前接待的一个用户就是4g不可以播,切到wifi可以;然后再切回4g时,依然不可以。 我们的服务没问题,如图BackgroundAudioManager 不可以, InnerAudioContext 可以。直接网页打开链接也能播。 多见于IOS。