项目要做一个可以为日记添加音乐的小程序,所以要用到音乐api,参考了一些文章后我们封装了一个qq音乐api库(完成了动态token获取,音乐搜索,音乐专辑图片,音乐名称,歌手名称,播放),有需要的可以到Github自提。
小程序qq音乐api库Gihub地址https://github.com/FisherWY/QQMusicPlugin,里面有简单的教程,如果开发工具不勾选ES6转ES5的话,可以无视里面带的es6-promise这个js文件,并把var Promise = require('./es6-promise.min.js')
在
qqMusicTools.js中去掉。
由于下面的第四点坑,我们开发了网易云音乐api代替qq音乐api文章链接//www.greatytc.com/p/fbb010048c5d
播放背景音乐失败的解决方案
- 没有为音乐设置title
解决方案:在设置背景音乐的时候设置title:"随便设置点东西" - 请求的url中带有中文路径
使用encodeURI("xxxxxx")转码 - 手机设置了静音模式
- 一个非常奇葩的问题(翻遍了互联网都没找到解决方案,怀疑是官方的bug了)
android端(移动数据、WiFi、热点一切正常),电脑模拟器(开WiFi,3G各种模式都正常)都可以正常播放,iOS使用WiFi时正常播放,iOS使用移动数据、热点的时候无法播放,报错如下:
errCode:10002
errMsg:"playerErrCode:6, systemErrCode:403, domain:com.tencent.KSAudioPlayer.HTTP, description:未能完成操作。(“com.tencent.KSAudioPlayer.HTTP”错误 403。)"
src:"http://ws.stream.qqmusic.qq.com/C400002WqezQ4dmIeT.m4a?guid=126548448&vkey=0E12BA0C521F05EF0103E99180DC5C50CA0E942E3183546F5D186F3E6F20F161E9EB0DCEA038F0A9A578E2DFAEBF434AF48521DA440A7EFF&fromtag=0"
暂时没有找到解决方案,但是问题只在qq音乐api上出现,使用网易云完全正常。
下一步准备使用网易云api代替qq音乐api。已经开发新的网易云api代替qq音乐api了,需要的可以看看这篇文章//www.greatytc.com/p/fbb010048c5d