微信开发第十六章 微信音乐播放器(三)
五、音乐播放器前后端整合
在前两期教程中我们已经将前台播放器界面、后台音乐内容管理以及数据通讯接口完成了,现在要做的事情就是编写代码让前台播放器利用通讯接口来调用后台音乐内容,实现一些播放器操作。
之前的前台页面是实现播放器效果展现和离线播放,所以在整合的时候对之前的html代码做了一些调整,去除了音乐封面、音乐信息以及音乐url等,这里就不重点讲了,有兴趣的朋友可以将前后两个文件做个对比。
第71、73行是定义一些变量,同时新建一个播放器类,类的定义在common.js里,这个类是有关于播放器的一些绑定操作,比如播放、暂停,检测歌曲载入和播放时间,检测歌曲是否播放完毕等,有兴趣的可以去看下。
第74行是jquery的一种语法,表示当页面加载完毕时执行这个函数,也就是当前台页面加载完成后执行该函数里的一些程序。
第76行这个函数定义也在common.js里,是将歌曲列表层隐藏起来,隐藏的方法是获取当前页面的宽度,然后将列表左偏移页面宽度。
第77到115行是对播放器上的一些按钮进行事件绑定,$('#按钮名').click(函数)相当于在按钮上加onclick事件,即当用户点击按钮时触发操作。
第117行播放器类绑定播放器控件。
第119行到126行获取前端页面url传递的参数,一个是歌曲的ID,一个是微信用户ID。播放器前端页面是一个.html的静态页面,因此获取url参数是通过location.search来获取的,parseQuery()函数是用来处理获取的数据的。
第128行通过get_song函数从服务器获取歌曲详细信息,更新播放器。
第130行通过get_list函数从服务器获取歌曲列表信息,更新列表内容。
该函数的参数有两个,一个是song_id,即需要获取歌曲的ID号,播放器切换上下歌曲、歌曲列表点选歌曲都是调用这个函数将歌曲ID传递到服务器上,另一个参数opne_id是微信用户ID,主要是辅助判断该歌曲是否为用户表态喜欢的歌曲。
获取歌曲信息采用的是Ajax这种异步获取的方式,这样可以在不刷新当前页面的情况下从服务器上拿到数据,更新当前页面的一些内容,它也分GET和POST两种模式,这里都是用了GET模式。
Ajax的格式是$.ajax({过程}),其中有一些必写参数:
URL:是指服务器接口地址,由于采用的是get的方式,所以除了地址外还要将参数传递过去,在这里传递过去的是t=jsonp(服务器返回数据的格式)、song_id(歌曲ID)、open_id(微信用户ID),接口地址为服务器上wxgetmusic.php,这里请各位修改下sae的域名。
DATATYPE:接受数据的格式
JSONP:校验的变量名
TIMEOUT:保持连接最大时间,超过则断开
SUCCESS:通讯成功后执行事件
jQueryXXXX这个是校验的变量名,后面就是json格式的歌曲信息数据,包括歌曲信息、上一首下一首的ID号等。获取到这些数据后就可以相应更新播放器内容。
第152到155行是更新歌曲名称、演唱者、歌曲说明、歌曲封面,其中.html()是jquery的函数,表示替换指定控件的内容,.css()也是jquery的函数,表示修改控件的样式。
第158行是更新播放器控件的歌曲url,即第38行
第160到162行是给全局变量赋值,这三个变量在初始化的时候定义了,分别对应上一首、下一首和当前歌曲。
第164到171行是根据返回的表态标识来判断当前歌曲的喜欢样式,即红心还是灰心。
第175行是当接口文件返回错误,即wxgetmusic.php里出现throw new Exception(错误信息)跳出时,将错误信息显示出来。
结构和上面差不多,不同的是这里url的参数多了do=like,这样wxgetmusic.php就会接收到do这个参数为like,表示执行第44到第88行用户表态的操作。
这里的重点有三个:
第247行到252行判断获取全部歌曲列表还是喜欢歌曲列表。
第262行到274行是歌曲列表内容展示格式整理,由于服务器返回的歌曲列表是一个数组,因此在这里用$.each做数组的读取,然后拼接成一个个
<
dl>内容块,最后整体替换fmlistdiv的内容。
第275行到287行是页码区内容展示,page是服务器返回的当前页码,如果当前页码不为1则表示不是首页,因此要显示首页和上一页按钮,real_page是服务器返回的总页数,如果当前页码不等于总页数表示不是尾页,因此要显示尾页和下一页。
这是一个标准的微信图文消息回复格式,要注意的是图文消息地址Url这个赋值,我除了把播放器url地址放上之外,还有相应的参数,其中0表示默认歌曲ID,&&是分隔符,后面的$fromUsername是当前微信用户的ID号,这样当用户点击该图文消息时,实际访问的地址是:
播放器页面地址?歌曲ID=0&&微信用户ID=xxx
播放器也就可以获取到歌曲ID和微信用ID了!关于播放器的教程到此完毕,希望对大家有帮助!
相关文章
- 微信开发第一章 微信公众号的注册、设置与登陆
- 微信开发第二章 公众平台后台介绍
- 微信开发第三章 公众平台群发消息
- 微信开发第四章 公众平台编辑模式(上)
- 微信开发第五章 公众平台编辑模式(下)
- 微信开发第六章 公众账号自动回复
- 微信开发第七章 公众平台开发模式
- 微信开发第八章 新浪云计算平台注册和使用
- 微信开发第九章 用微信开发模式做欢迎词
- 微信开发第十章 公众账号发送欢迎图文消息
- 微信开发第十一章 公众账号自定义回复功能
- 微信开发第十二章 公众账号接收非文字消息
- 微信开发第十三章 公众账号接收非文字消息
- 微信开发第十四章 公司通讯录开发(一)
- 微信开发第十四章 公司通讯录开发(二)
- 微信开发第十四章 公司通讯录开发(三)
- 微信开发第十四章 公司通讯录开发(四)
- 微信开发教程 微信问答系统
- 微信开发第十五章 自定义菜单开发
- 微信开发第十六章 微信音乐播放器(一)
- 微信开发第十六章 微信音乐播放器(二)
- 微信开发第十六章 微信音乐播放器(三)