收藏
回答

ios 音频播放,m4a 播放不了?带中文的MP3也不行么?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.getBackgroundAudioManager(),wx.createInnerAudioContext() 客户端 6.7.3 2.6.5

小程序的 音乐播放,最近在弄的,发现在 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


最后一次编辑于  2019-04-17
回答关注问题邀请回答
收藏

2 个回答

  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-04-17

    1、建议链接不要带中文 2、m4a格式这边是可以正常播放的,具体是什么机型、系统版本、微信版本不能播放呢

    2019-04-17
    有用
    回复 3
    • 一往无前
      一往无前
      2019-04-17

      恩,具体就是 iPhone 8,系统版本ios:12.1.4,微信版本是:7.0.3   .请问,我发的这个代码片段能播放是么?我这边测试的时候,同事的这台iPhone 8不能播放。

      2019-04-17
      回复
    • 一往无前
      一往无前
      2019-04-17

      转码掉中文就能播放了。郁闷,之前特地找了英文链接都没成功,转个码就行了。。。

      2019-04-17
      回复
    • 余铭
      余铭
      2019-08-15
      m4a 格式在 iPhone Xs 下无法播放。
      2019-08-15
      回复
  • 是小白啊
    是小白啊
    2019-04-17

    建议做一下中文的编码处理

    2019-04-17
    有用
    回复 3
    • 一往无前
      一往无前
      2019-04-17

      恩,好的,我这边试试。只是我尝试了一些不带中文的,依旧是不行。ε=(´ο`*)))唉

      2019-04-17
      回复
    • 一往无前
      一往无前
      2019-04-17

      同事的手机是美版的,这个会有影响么?

      2019-04-17
      回复
    • 一往无前
      一往无前
      2019-04-17

      恩。很神奇。把链接中的中文转码后,就能播放了、

      2019-04-17
      回复
登录 后发表内容