- 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。
2019-10-23 - BackgroundAudioManager没有解绑事件的概念?
如题,没看到有off[Event]之类的接口
2019-09-05 - [BUG]请认领,CSS 3D动画可重现
wxml: [代码]<[代码][代码]view[代码] [代码]style[代码][代码]=[代码][代码]"perspective:900px;overflow: visible"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]animation[代码][代码]=[代码][代码]"{{testAnimate}}"[代码] [代码]style[代码][代码]=[代码][代码]"position: relative;width:80px;height: 100px;transform-style: preserve-3d;"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"test-card opposite-face"[代码][代码]>B</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"test-card"[代码][代码]>A</[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码] wxs: [代码]Page({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]testAnimate: [代码][代码]null[代码][代码],[代码][代码] [代码][代码]},[代码][代码] [代码][代码]onLoad() {[代码][代码] [代码][代码]var[代码] [代码]self = [代码][代码]this[代码][代码];[代码] [代码] [代码][代码]setTimeout([代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]var[代码] [代码]animate = wx.createAnimation({[代码][代码] [代码][代码]duration: 4000[代码][代码] [代码][代码]});[代码] [代码] [代码][代码]// 做一个翻转动画[代码][代码] [代码][代码]animate.rotateY(180).step();[代码] [代码] [代码][代码]self.setData({[代码][代码] [代码][代码]testAnimate: animate.export()[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}, 2000)[代码][代码] [代码][代码]}[代码][代码]})[代码] wxss: [代码].test-card {[代码][代码] [代码][代码]background[代码][代码]: [代码][代码]#e2e2e2[代码][代码];[代码][代码]font-size[代码][代码]: [代码][代码]40px[代码][代码];[代码][代码] [代码][代码]position[代码][代码]: [代码][代码]absolute[代码][代码];[代码][代码]top[代码][代码]: [代码][代码]0[代码][代码];[代码][代码]left[代码][代码]: [代码][代码]0[代码][代码];[代码][代码]right[代码][代码]: [代码][代码]0[代码][代码];[代码][代码]bottom[代码][代码]: [代码][代码]0[代码][代码];[代码][代码]}[代码] [代码].opposite-face {transform: rotateY([代码][代码]180[代码][代码]deg);[代码][代码]background[代码][代码]: [代码][代码]green[代码][代码];}[代码] 背景:我在做一个“卡片翻转”效果,用了A面和B面。翻转的时候旋转A和B的共同父元素。 1. 切换前,A面正面,没错 [图片] 2. 转到背面的时候,为啥还是A????? [图片] 3. 直到动画完成,才闪出B [图片]
2017-12-14