您好,登錄后才能下訂單哦!
本篇內容主要講解“微信小程序如何實現一個音樂播放器”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“微信小程序如何實現一個音樂播放器”吧!
推薦頁
完成標題欄后我們開始編寫推薦頁,即mainView=1時所要顯示的頁面。
根據圖10-2所示,推薦頁由上方的輪播組件(banner)以及下方的電臺列表兩部分構成。
為了完成這個頁面,我們先來看看網絡請求返回的數據格式。
這里使用開源數據:
http://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg
我們在services文件夾下創建music.js文件,在里面開始編寫網絡請求代碼:
// 獲取首頁的音樂數據 function getRecommendMusic(callback){ //請求所需數據 var data = { g_tk: 5381, uin: 0, format: 'json', inCharset: 'utf-8', outCharset: 'utf-8', notice: 0, platform: 'h6', needNewCode: 1, _: Date.now() }; wx.request({ //地址 url: 'http://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg', //數據 data: data, //表示返回類型為JSON header: { 'Content-Type': 'application/json' }, success: function (res) { if (res.statusCode == 200) { callback(res.data) } else { } } }); } module.exports = { getRecommendMusic:getRecommendMusic } 復制代碼 通過這個請求,返回json格式的數據樣式為: { "code": 0, "data": { "slider": [ { "linkUrl": "http://share.y.qq.com/l?g=2766&id=1842365&g_f=shoujijiaodian", "picUrl": "https://cache.yisu.com/upload/ask_collection/20210725/111/143566.jpg", "id": 8642 }, { "linkUrl": "http://y.qq.com/live/zhibo/0214liwen.html", "picUrl": "https://cache.yisu.com/upload/ask_collection/20210725/111/143568.jpg", "id": 8645 }, { "linkUrl": "http://v.qq.com/live/p/topic/22876/preview.html", "picUrl": "https://cache.yisu.com/upload/ask_collection/20210725/111/143569.jpg", "id": 8653 }, { "linkUrl": "http://y.qq.com/m/act/singer/index.html?ADTAG=shoujijiao", "picUrl": "https://cache.yisu.com/upload/ask_collection/20210725/111/143571.jpg", "id": 8609 }, { "linkUrl": "http://y.qq.com/w/album.html?albummid=0035hOHV0uUWA9", "picUrl": "https://cache.yisu.com/upload/ask_collection/20210725/111/143573.jpg", "id": 8607 } ], "radioList": [ { "picUrl": "https://cache.yisu.com/upload/ask_collection/20210725/111/143574.jpg", "Ftitle": "熱歌", "radioid": 199 }, { "picUrl": "https://cache.yisu.com/upload/ask_collection/20210725/111/143575.jpg", "Ftitle": "一人一首招牌歌", "radioid": 307 } ], "songList": [] } }
這里code為我們請求是否成功的標示,當它等于0時,表示請求成功。data里就是我們需要的數據,里面包含3個部分,我們需要使用的為前兩個,即slider部分——為我們的輪播組件提供數據,以及radioList部分——為電臺列表提供數據。 這兩部分會分別以數組格式保存,通過名稱來獲取相應數據。
有了數據之后,我們開始編寫顯示數據的組件:
<view hidden="{{currentView != 1}}"> <swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}"> <block wx:for="{{slider}}" wx:key="unique"> <swiper-item data-id="{{item.id}}"> <image src="{{item.picUrl}}" style="height:100%" class="slide-image" /> </swiper-item> </block> </swiper> <view class="channel"> <text class="channel-title">電臺</text> <view class="radio-list"> <block wx:for="{{radioList}}" wx:key="unique"> <view class="radio-item" data-id="{{item.radioid}}" data-ftitle="{{item.Ftitle}}" bindtap="radioTap"> <image class="radio-img" mode="aspectFit" style="height:167.5px;" src="{{item.picUrl}}" /> <text class="radio-text">{{item.Ftitle}}</text> </view> </block> </view> </view> </view> 復制代碼 最外層使用view組件包裹,當currentView!=1時隱藏。 輪播組件使用swiper組件來完成,設置是否顯示指示點,是否自動播放,切換間隔以及滑動時間4個屬性。每個swiper-item為圖片,使用item.picUrl從slider里獲取數據。 電臺部分使用列表格式,數據保存在radioList內。每個item包涵兩個部分:圖片和標題,以item.picUrl和item.Ftitle保存,此外還要保存每個item的ID(item.radioid)用于頁面跳轉。點擊的響應事件定義為radioTap。 至此我們需要的數據有:indicatorDots,autoplay,interval,duration,slider,radioList。我們把這些加入到index.js中的data里吧。 //引用網絡請求文件 var MusicService = require('../../services/music'); //獲取應用實例 var app = getApp() Page({ data: { indicatorDots: true, autoplay: true, interval: 5000, duration: 1000, radioList: [], slider: [], mainView: 1, }, onLoad: function () { var that = this; MusicService.getRecommendMusic(that.initPageData); }, })
data寫好后,我們在onLoad里調用我們寫好的網絡請求函數,傳入的參數(that.initPageData)即當請求成功后需要執行的函數,在這個函數里我們為數組radioList和slider賦值。
initPageData: function (data) { var self = this; //請求成功再賦值,需要判斷code是否為0 if (data.code == 0) { self.setData({ slider: data.data.slider, radioList: data.data.radioList, }) } }, 復制代碼 到此為止我們的頁面應該可以顯示數據了,最后一步我們要給寫好的view添加點擊事件radioTap,讓用戶點擊后跳轉到play(音樂播放)頁面。 radioTap: function (e) { var dataSet = e.currentTarget.dataset; ... },
在跳轉的時候,我們需要通過已經獲得的radioid向網絡請求數據,返回歌曲列表,并且在播放頁面加載這個列表,這一部分就留到音樂播放頁再完成吧。
到此,相信大家對“微信小程序如何實現一個音樂播放器”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。