使用vue-aplayer插件时出现的问题的解决


Posted in Javascript onMarch 02, 2018

本文介绍了使用vue-aplayer插件时出现的问题的解决,分享给大家,具体如下:

安装

$ 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的选项一样

属性名 类型 默认值 描述
narrow Boolean false 紧凑样式
autoplay String null 是否自动播放,为null表示不会自动播放
showlrc Boolean false 是否显示歌词
mutex Boolean false 当一首音乐正在播放时,暂停其他音乐
theme String '#b7daff'(浅蓝色) 主题颜色
mode String 'circulation' 播放模式,random:随机模式 sigle:单曲循环 circulation:列表循环 order:顺序播放(列表播放完即停止)
preload String 'auto' 音乐加载方式,none,metadata,auto
listmaxheight String none 播放列表的最大高度
music String Object or Array 歌曲信息,详情见下方“歌曲信息”

歌曲信息

属性music既可以是包含歌曲信息的对象类型,也可以是包含这些对象的数组类型

属性名 默认值 描述
title 'Untitled' 歌曲名
author 'Unknown' 歌手
url required 歌曲地址
pic none 歌曲海报
lrc none 歌词或者歌词文件的地址

事件

事件名 参数 描述
play none 开始播放时触发
pause none 暂停时触发
canplay none 当数据支持播放时触发
playing none 播放时会定时触发
ended none 停止播放时触发
error none 错误出现时触发
update:mode none 见上面的mode属性

刚刚接触vue-aplayer,从github上找到了用法,首先需要npm install vue-aplayer ?save ,之后在组件中引入import VueAplayer from ‘vue-aplayer',别忘了注册components: {
'a-player': VueAplayer
}
这里还有一个问题,用v-if,而不是v-show,因为是异步请求,所以一开始播放器中是没有歌曲的,所有给了个v-if不然会插件默认会先生成播放器,导致报错

?2017.12.2 ,现在的代码版本是这样的~

<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>

还是有问题,网上查过之后,是因为在执行了play()方法以后立即执行pause()方法,至于解决方法……还在寻找中

使用vue-aplayer插件时出现的问题的解决

之前遇到的问题是

使用vue-aplayer插件时出现的问题的解决

~~~~想明白了一些

使用vue-aplayer插件时出现的问题的解决

酱紫,this.musicList是空的,obj就是空的喽。

使用vue-aplayer插件时出现的问题的解决

如果先给this.musicList赋值了,那么push之后就会酱紫,重复两遍

其实是很好想明白的哈。

补充的代码,看起来更直观

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();

错误是这样的

使用vue-aplayer插件时出现的问题的解决

正确的是酱紫的

使用vue-aplayer插件时出现的问题的解决

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
利用毫秒减值计算时长的js代码
Sep 22 Javascript
jquery无法设置checkbox选中即没有变成选中状态
Mar 27 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
Apr 20 Javascript
JavaScript的null和undefined区别示例介绍
Sep 15 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 Javascript
jQuery表格插件datatables用法汇总
Mar 29 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
Jun 24 Javascript
最全的JavaScript开发工具列表 总有一款适合你
Jun 29 Javascript
webstorm添加vue.js支持的方法教程
Jul 05 Javascript
在vue项目中使用md5加密的方法
Sep 14 Javascript
详解vantUI框架在vue项目中的应用踩坑
Dec 06 Javascript
vue基础之data存储数据及v-for循环用法示例
Mar 08 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
Mar 02 #Javascript
vue中添加mp3音频文件的方法
Mar 02 #Javascript
JS中利用FileReader实现上传图片前本地预览功能
Mar 02 #Javascript
select标签设置默认选中的选项方法
Mar 02 #Javascript
原生JavaScript实现todolist功能
Mar 02 #Javascript
js判断输入框不能为空格或null值的实现方法
Mar 02 #Javascript
vue判断input输入内容全是空格的方法
Mar 02 #Javascript
You might like
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
php简单获取复选框值的方法
2016/05/11 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
jquery 简单的进度条实现代码
2010/03/11 Javascript
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
python实现随机密码字典生成器示例
2014/04/09 Python
Python跳出多重循环的方法示例
2019/07/03 Python
Python过滤序列元素的方法
2020/07/31 Python
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
事业单位鉴定材料
2014/05/25 职场文书
丧事答谢词
2015/01/05 职场文书
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers