小程序的 音乐播放,最近在弄的,发现在 ios 上 wx.getBackgroundAudioManager(),wx.createInnerAudioContext() 这两个方法都不能播放m4a 的音乐,而且MP3链接的 路径带中的页播放不了,但是在安卓上和开发工具上是可以的。
还有一点:
style="-webkit-mask: url('{{music.wavePic}}') no-repeat;-webkit-mask-size:100% 60px;)"
这个是音乐播放器的进度条的样式,本来想加一张频谱图覆盖,但是 -webkit-mask: 这个无效,加载不出来。不过在 iPhone 6S 却可以,苹果8 与苹果6 测试过不行。
这是代码片段:
https://developers.weixin.qq.com/s/1Of3QHmi7H79
网上找不到相关问题答案,不知道大家是否碰到过这个问题。ε=(´ο`*)))唉,
//音乐播放
musicPlayer:function(){
var that=this;
var player = app.globalData.player;
console.log('播放的当前音乐', that.data.curplay)
var m = that.data.curplay;
player.title = m.title;
player.src = 'https://www.xyvoicewx.cn/xypyhtzcl/./files/video/地产-京华新天地.mp3';
console.log('断点1==')
wx.setNavigationBarTitle({ title: m.title });
wx.createSelectorQuery().in(that).select('#playing-status').boundingClientRect(function (rect) {
rect.width // 节点的宽度
}).exec((res) => {
that.setData({
barWidth: res[0].width //音乐播放条长度
})
})
player.play()
player.onPlay(() => {
console.log('音乐播放开始')
})
console.log('断点2==')
player.play();
console.log('断点3==')
player.onTimeUpdate(function (res) {
var maxnum = Math.ceil(player.duration * 1)
var active = Math.ceil(player.currentTime * 1)
// console.log('maxnum==', maxnum);
var progressTime= that.s_to(active);
console.log('断点3.5==', active)
var duration=that.s_to(maxnum);
console.log('断点4==')
that.setData({
percent: active / maxnum*100,
playtime: progressTime,
duration: duration,
maxnum: maxnum,
})
console.log('ios==',duration)
// console.log('测试播放进度', that.data.percent)
})
这是截取的音乐播放的一段代码段,console.log 的断点在 “断点3” 就没有了。安卓是没问题。还有,如果用官方给的demo 的链接就可以正常播放。
这是官网的测试音乐链接: http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46
1、建议链接不要带中文 2、m4a格式这边是可以正常播放的,具体是什么机型、系统版本、微信版本不能播放呢
恩,具体就是 iPhone 8,系统版本ios:12.1.4,微信版本是:7.0.3 .请问,我发的这个代码片段能播放是么?我这边测试的时候,同事的这台iPhone 8不能播放。
转码掉中文就能播放了。郁闷,之前特地找了英文链接都没成功,转个码就行了。。。
建议做一下中文的编码处理
恩,好的,我这边试试。只是我尝试了一些不带中文的,依旧是不行。ε=(´ο`*)))唉
同事的手机是美版的,这个会有影响么?
恩。很神奇。把链接中的中文转码后,就能播放了、