麻烦帮我看下问题,https://developers.weixin.qq.com/community/develop/doc/0006c2d89fc3c036cb77c75835bc00 同一个域名下,一个链接播放没问题,另一个链接却播放没有反应,也没有输出错误log,我测试的机型是mi6x 请问是什么原因? (当然链接直接点击是可以播放的!如这两个链接:可以的: https://sq.ztloft.com/wave/B854EC109ACBC346.mp3 不可以的: https://sq.ztloft.com/wave/4ED9320062EF362A.mp3 )我里面有代码片段,麻烦给帮我解答一下大神,谢谢。
安卓 createInnerAudioContext 播放失败- 当前 Bug 的表现(可附上截图) 安卓播放失败,ios 与调试工具正常 - 预期表现 所有音频播放正常 - 复现路径 - 提供一个最简复现 Demo [代码]Component({[代码][代码] [代码][代码]/**[代码][代码] [代码][代码]* 组件的属性列表[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]properties: {[代码][代码] [代码][代码]audio: {[代码][代码] [代码][代码]type: Object,[代码][代码] [代码][代码]value: {}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]pageLifetimes: {[代码][代码] [代码][代码]hide: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]this[代码][代码].innerAudioContext.stop()[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 组件的初始数据[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]playing: [代码][代码]false[代码][代码],[代码][代码] [代码][代码]dur: 0,[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]ready: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]this[代码][代码].innerAudioContext = wx.createInnerAudioContext()[代码][代码] [代码][代码]this[代码][代码].innerAudioContext.src = [代码][代码]'http://tbvideo.ixiaochuan.cn/zyad/07/a0/78ac-c7e0-11e8-8d60-00163e00c638'[代码][代码] [代码][代码]this[代码][代码].innerAudioContext.obeyMuteSwitch = [代码][代码]false[代码][代码] [代码][代码]this[代码][代码].innerAudioContext.volume = 1[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]dur: [代码][代码]this[代码][代码].properties.audio.dur || 0,[代码][代码] [代码][代码]})[代码] [代码] [代码][代码]this[代码][代码].innerAudioContext.onPlay(() => {[代码][代码] [代码][代码]console.log([代码][代码]'play'[代码][代码])[代码][代码] [代码][代码]})[代码] [代码] [代码][代码]this[代码][代码].innerAudioContext.onTimeUpdate((e) => {[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]dur: Math.floor([代码][代码]this[代码][代码].innerAudioContext.duration - [代码][代码]this[代码][代码].innerAudioContext.currentTime) > 0 ? Math.floor([代码][代码]this[代码][代码].innerAudioContext.duration - [代码][代码]this[代码][代码].innerAudioContext.currentTime) : 0[代码][代码] [代码][代码]})[代码][代码] [代码][代码]})[代码] [代码] [代码][代码]this[代码][代码].innerAudioContext.onEnded(() => {[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]dur: Math.floor([代码][代码]this[代码][代码].properties.audio.dur),[代码][代码] [代码][代码]playing: [代码][代码]false[代码][代码],[代码][代码] [代码][代码]})[代码][代码] [代码][代码]})[代码] [代码] [代码][代码]this[代码][代码].innerAudioContext.onWaiting(() => {[代码][代码] [代码][代码]console.log([代码][代码]'正在缓冲...'[代码][代码])[代码][代码] [代码][代码]})[代码] [代码] [代码][代码]this[代码][代码].innerAudioContext.onError((res) => {[代码][代码] [代码][代码]console.log(res.errMsg)[代码][代码] [代码][代码]console.log(res.errCode)[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]detached: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]this[代码][代码].innerAudioContext.destroy()[代码][代码] [代码][代码]this[代码][代码].innerAudioContext = [代码][代码]null[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 组件的方法列表[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]methods: {[代码][代码] [代码][代码]playAudio: [代码][代码]function[代码] [代码](e) {[代码][代码] [代码][代码]const { playing } = [代码][代码]this[代码][代码].data[代码][代码] [代码][代码]if[代码] [代码](playing) {[代码][代码] [代码][代码]this[代码][代码].innerAudioContext.pause()[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]playing: [代码][代码]false[代码][代码],[代码][代码] [代码][代码]})[代码][代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]this[代码][代码].innerAudioContext.play()[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]playing: [代码][代码]true[代码][代码],[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码][代码] [代码][代码]}[代码][代码]})[代码]
2018-10-15最后确定了是因为这个链接的问题,不知道为什么小程序那边部分安卓手机对播放链接有要求!
Android真机createInnerAudioContext()无法播放- 当前 Bug 的表现(可附上截图) 在小米6x的手机上 点击播放的时候 有进来播放的方法,但是无法播放 ,即没有打印错误也没有打印正在播放 在开发者工具上和ios上都可以播放 查了问这个问题的答案,好像都没看到哪里有解决?如果已经有解决的,麻烦提供下解决的链接或者方法 [图片] - 预期表现 希望能指点下看看是不是我哪里写错了 - 复现路径 在这个机子上都无法播放,所以必复现。 - 提供一个最简复现 Demo 这个是demon playwave:function(){ var isPlay=this.data.isplay; if(isPlay){ return; } const innerAudioContext = wx.createInnerAudioContext() innerAudioContext.autoplay = true innerAudioContext.src = 'http://sq.ztloft.com:8804/wave/B854EC109ACBC346.mp3'; innerAudioContext.onPlay(() => { console.log("我正在播放"); that.setData({ isPlay: true }); }) innerAudioContext.onError((res) => { console.log(res.errMsg) console.log(res.errCode) that.setData({ isPlay: false }) }) innerAudioContext.onEnded(function (e) { console.log("结束"); that.setData({ isPlay: false }) }); }
2018-10-11