使用vue-aplayer插件時(shí)出現(xiàn)的問(wèn)題的解決
本文介紹了使用vue-aplayer插件時(shí)出現(xiàn)的問(wèn)題的解決,分享給大家,具體如下:
安裝
$ npm install vue-aplayer --save
使用
<aplayer autoplay :music="{
title: 'Preparation',
author: 'Hans Zimmer/Richard Harvey',
url: 'http://devtest.qiniudn.com/Preparation.mp3',
pic: 'http://devtest.qiniudn.com/Preparation.jpg',
lrc: '[00:00.00]lrc here\n[00:01.00]aplayer'
}">
</aplayer>
// ES6
import Aplayer from 'vue-aplayer'
new Vue({
components: {
Aplayer
}
})
屬性
這些屬性大部分跟Aplayer的選項(xiàng)一樣
| 屬性名 | 類型 | 默認(rèn)值 | 描述 |
|---|---|---|---|
| narrow | Boolean | false | 緊湊樣式 |
| autoplay | String | null | 是否自動(dòng)播放,為null表示不會(huì)自動(dòng)播放 |
| showlrc | Boolean | false | 是否顯示歌詞 |
| mutex | Boolean | false | 當(dāng)一首音樂(lè)正在播放時(shí),暫停其他音樂(lè) |
| theme | String | '#b7daff'(淺藍(lán)色) | 主題顏色 |
| mode | String | 'circulation' | 播放模式,random:隨機(jī)模式 sigle:單曲循環(huán) circulation:列表循環(huán) order:順序播放(列表播放完即停止) |
| preload | String | 'auto' | 音樂(lè)加載方式,none,metadata,auto |
| listmaxheight | String | none | 播放列表的最大高度 |
| music | String | Object or Array | 歌曲信息,詳情見(jiàn)下方“歌曲信息” |
歌曲信息
屬性music既可以是包含歌曲信息的對(duì)象類型,也可以是包含這些對(duì)象的數(shù)組類型
| 屬性名 | 默認(rèn)值 | 描述 |
|---|---|---|
| title | 'Untitled' | 歌曲名 |
| author | 'Unknown' | 歌手 |
| url | required | 歌曲地址 |
| pic | none | 歌曲海報(bào) |
| lrc | none | 歌詞或者歌詞文件的地址 |
事件
| 事件名 | 參數(shù) | 描述 |
|---|---|---|
| play | none | 開(kāi)始播放時(shí)觸發(fā) |
| pause | none | 暫停時(shí)觸發(fā) |
| canplay | none | 當(dāng)數(shù)據(jù)支持播放時(shí)觸發(fā) |
| playing | none | 播放時(shí)會(huì)定時(shí)觸發(fā) |
| ended | none | 停止播放時(shí)觸發(fā) |
| error | none | 錯(cuò)誤出現(xiàn)時(shí)觸發(fā) |
| update:mode | none | 見(jiàn)上面的mode屬性 |
剛剛接觸vue-aplayer,從github上找到了用法,首先需要npm install vue-aplayer –save ,之后在組件中引入import VueAplayer from ‘vue-aplayer',別忘了注冊(cè)components: {
'a-player': VueAplayer
}
這里還有一個(gè)問(wèn)題,用v-if,而不是v-show,因?yàn)槭钱惒秸?qǐng)求,所以一開(kāi)始播放器中是沒(méi)有歌曲的,所有給了個(gè)v-if不然會(huì)插件默認(rèn)會(huì)先生成播放器,導(dǎo)致報(bào)錯(cuò)
–2017.12.2 ,現(xiàn)在的代碼版本是這樣的~
<template>
<div class="music">
<a-player v-if='isShow' :autoplay='true' :music="musicList"></a-player>
</div>
</template>
<script>
import Axios from 'axios'
import VueAplayer from 'vue-aplayer'
export default{
data(){
return {
musicList:[],
isShow:false
}
},
mounted(){
Axios.get('../static/data/musicdata.json').then(res=>{
let List = res.data.musicData;
// console.log(res);
List.forEach(element => {
let obj = {
title:element.title,
pic:element.musicImgSrc,
url:element.src,
author:element.author,
lrc:"../static/"+element.lrc
}
this.musicList.push(obj);
});
this.isShow=true;
console.log(this.musicList);
}).catch();
},
components: {
'a-player': VueAplayer
}
}
</script>
<style>
.music{
margin:1rem 0;
}
</style>
還是有問(wèn)題,網(wǎng)上查過(guò)之后,是因?yàn)樵趫?zhí)行了play()方法以后立即執(zhí)行pause()方法,至于解決方法……還在尋找中

之前遇到的問(wèn)題是

~~~~想明白了一些

醬紫,this.musicList是空的,obj就是空的嘍。

如果先給this.musicList賦值了,那么push之后就會(huì)醬紫,重復(fù)兩遍
其實(shí)是很好想明白的哈。
補(bǔ)充的代碼,看起來(lái)更直觀
Axios.get('../static/data/musicdata.json').then(res=>{
// let List = res.data.musicData;
// console.log(res);
this.musicList.forEach(element => {
let obj = {
title:element.title,
pic:element.musicImgSrc,
url:element.src,
author:element.author,
lrc:"../static/"+element.lrc
}
this.musicList.push(obj);
console.log(this.musicList);
});
this.isShow=true;
console.log(this.musicList);
}).catch();
錯(cuò)誤是這樣的

正確的是醬紫的

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在Vue3中使用vue-qrcode庫(kù)實(shí)現(xiàn)二維碼生成的方法
在Vue3中實(shí)現(xiàn)二維碼生成需要使用第三方庫(kù)來(lái)處理生成二維碼的邏輯,常用的庫(kù)有 qrcode和 vue-qrcode,這篇文章主要介紹了在Vue3中使用vue-qrcode庫(kù)實(shí)現(xiàn)二維碼生成,需要的朋友可以參考下2023-12-12
Vue使用fabric.js實(shí)現(xiàn)局部截圖與大圖預(yù)覽功能
這篇文章主要為大家詳細(xì)介紹了Vue如何使用fabric.js實(shí)現(xiàn)局部截圖與el-image-viewer大圖預(yù)覽功能,文中的示例代碼講解詳細(xì),感興趣的可以了解下2024-02-02
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
今天小編就為大家分享一篇vue-cli 3.x 配置Axios(proxyTable)跨域代理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue3使用pdf.js來(lái)預(yù)覽文件的操作步驟(本地文件測(cè)試)
這篇文章主要介紹了vue3使用pdf.js來(lái)預(yù)覽文件的操作步驟(本地文件測(cè)試),文中通過(guò)代碼示例和圖文結(jié)合的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-05-05
vue.js+elementUI實(shí)現(xiàn)點(diǎn)擊左右箭頭切換頭像功能(類似輪播圖效果)
這篇文章主要介紹了vue.js+elementUI實(shí)現(xiàn)點(diǎn)擊左右箭頭切換頭像功能(類似輪播圖),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
Vue?Router中router.resolve方法使用實(shí)例
這篇文章主要給大家介紹了關(guān)于Vue?Router中router.resolve方法使用的相關(guān)資料,router.resolve方法在前端路由庫(kù)中用于解析路由信息,接受路徑或路由對(duì)象,返回解析后的?URL、路由和位置對(duì)象,需要的朋友可以參考下2024-11-11
詳解Vue組件實(shí)現(xiàn)tips的總結(jié)
這篇文章主要介紹了詳解Vue組件實(shí)現(xiàn)tips的總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
京東 Vue3 組件庫(kù)支持小程序開(kāi)發(fā)的詳細(xì)流程
這篇文章主要介紹了京東 Vue3 組件庫(kù)支持小程序開(kāi)發(fā)的詳細(xì)流程,通過(guò)引入NutUI,即可在項(xiàng)目中使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-06-06

