项目在线演示地址:http://rose111.applinzi.com/
github 地址:欢迎star https://github.com/midoxinxin/YueX-Music

 悦心,一款音乐播放器应用。由“女立方”团队开发。眼下。较为流行的音乐播放器有QQ音乐、网易云音乐、多米音乐等。

“悦心”音乐播放器的主要功能,提供音乐数据库,点击列表播放音乐,还可对歌曲进行收藏。加入专属音乐心情功能。

1.歌曲播放过程中,气泡随音乐节奏动态变化。
2.点击圆盘。停止音乐播放
3.点击心形图标。收藏当前播放音乐。
4.音乐播放界面,点击评论图标。记录对当前播放音乐的专属音乐心情。

涉及到的技术点:

1.html5新特性:canvas。localstorage.
2.webaudio api
3.phoneGap(将H5打包成android)

开发记录

1.创建音频环境(context1 = new (window.AudioContext || window.webkitAudioContext)(); )
2.获取audio var audio =document.getElementById(“audio”);
3.在音频环境里创建源 并将音频发到音频源
var source = context1.createMediaElementSource(audio);
4.效果点 建立一个分析器analyserfa=context1.createAnalyser();
5.为音频选择一个目地。比如你的系统扬声器
6.连接源到效果器,以及效果器和目地(分析和可视化eg. AnalyserNode)

source.connect(analyserfa);
analyserfa.connect(context1.destination);

canvas方法调用

    canvasFormAudio = document.getElementById('canvasFormAudio');ctxfa = canvasFormAudio.getContext("2d");for ( var i = 0; i < (array.length)/4; i++ ){ctxfa.beginPath();var o = Dots[i];var r = array[i]/256*50;ctxfa.arc(o.x, o.y, r, 0, Math.PI*2,true);var g = ctxfa.createRadialGradient(o.x, o.y, 0, o.x, o.y, r);//并用放射状/圆形渐变进行填充:g.addColorStop(0,"#fff");g.addColorStop(1, o.color);ctxfa.fillStyle = g;ctxfa.fill();ctxfa.closePath();}

我的职责:首页canvas,导航条。音频文件分析平可视化canvas。
遇到的问题:音频数据分析 webaudio无法在chrome浏览器获取音频数据: chrome浏览器兼容问题
context1 = new (window.AudioContext || window.webkitAudioContext)();

 try {context1 = new (window.AudioContext || window.webkitAudioContext)();} catch(e) {throw new Error('The Web Audio API is unavailable');}   //画图函数function drawSpectrumfa() {     var WIDTH = canvasFormAudio.width;var HEIGHT= canvasFormAudio.height;var array =  new Uint8Array(128);    //复制当前的频率值到一个无符号数组中analyserfa.getByteFrequencyData(array);ctxfa.clearRect(0, 0, WIDTH, HEIGHT);//clearRect(矩形左上角x坐标,矩形左上角y坐标。清除矩形的宽,清除矩形的高)//循环生成圆点        for ( var i = 0; i < (array.length)/4; i++ ){ctxfa.beginPath();var o = Dots[i];var r = array[i]/256*50;ctxfa.arc(o.x, o.y, r, 0, Math.PI*2,true);var g = ctxfa.createRadialGradient(o.x, o.y, 0, o.x, o.y, r);//并用放射状/圆形渐变进行填充:g.addColorStop(0,"#fff");g.addColorStop(1, o.color);ctxfa.fillStyle = g;ctxfa.fill();ctxfa.closePath();}//这里我们的array一共同拥有128组数据,所以我们当时canvas设置的宽度为5*128=640//依据浏览器频率画图或者操作一些非css效果requestAnimationFrame = window.requestAnimationFrame ||window.webkitRequestAnimationFrame ||window.mozRequestAnimationFrame;requestAnimationFrame(drawSpectrumfa);}//音频分析function audioAnalayser(){  analyserfa=context1.createAnalyser();//建立一个分析器  var audio =jQuery("audio")[0];// 从audio标签获取声音源 sourcevar source = context1.createMediaElementSource(audio);source.connect(analyserfa);analyserfa.connect(context1.destination);drawSpectrumfa();//调用画图函数  }/********************************random**********************************/function random(m,n){return  Math.round(Math.random()*(n-m) + m);}
/********************************END**********************************//*******************球球窗体自适应*******************************/function resize(){height = canvasFormAudio.width;width = canvasFormAudio.height;ctxfa.height = height;ctxfa.width = width;getDots();}resize();window.onresize = resize;
/*********************** 自适应END*****************************/function getDots(){Dots = [];for(var i =0; i<size; i++){var x = random(0,width);var y = random(0,height);var color = "rgba("+random(0,255)+"," + random(0,255)+","+random(0,255)+",0)";Dots.push({x: x,y: y,color: color});}}

菜单

jQuery(document).ready(function($){//open navigation clicking the menu icon$('.cd-nav-trigger').on('click', function(event){event.preventDefault();toggleNav(true);});//close the navigation$('.cd-close-nav, .cd-overlay').on('click', function(event){event.preventDefault();toggleNav(false);});function toggleNav(bool) {$('.cd-nav-container, .cd-overlay').toggleClass('is-visible', bool);$('main').toggleClass('scale-down', bool);}
  1. phoneGap 打包H5

    转向:http://blog.csdn.net/u014345282/article/details/50997590

转载于:https://www.cnblogs.com/lytwajue/p/7203960.html

Anyoffice -HTML5大赛 悦心(基于H5开发安卓音乐app)-项目总结相关推荐

  1. html5app大赛,Anyoffice -HTML5大赛 悦心(基于H5开发安卓音乐app)-项目总结

    悦心,一款音乐播放器应用.由"女立方"团队开发.眼下.较为流行的音乐播放器有QQ音乐.网易云音乐.多米音乐等. "悦心"音乐播放器的主要功能,提供音乐数据库,点 ...

  2. H5开发的web APP和原生APP的区别

    H5开发的web APP和原生APP的区别有以下几个方面:一.开发方面 原生App ⊙ 每一种移动操作系统都需要独立的开发项目⊙ 每种平台都需要独立的开发语言.Java(Android), Objec ...

  3. .net vue漂亮登录界面_基于 electron-vue 开发的音乐播放器「实践」

    作者:XiaoTuGou 转发链接:https://github.com/SmallRuralDog 前言 基于 electron-vue 开发的音乐播放器,界面模仿QQ音乐. 技术栈electron ...

  4. 关于H5开发移动端APP

    使用H5开发移动端app 优点: 很大的好处就是快速.简单.方便,一套代码几乎不用怎么修改就可以同时打包iOS.Android安装包. 基于前端各方面应用技术栈成熟,资料齐全. 有不少的平台和开发工具 ...

  5. h5开发安卓机型点击输入框调起输入法,输入框被键盘遮挡的解决方法

    h5开发安卓机型点击输入框调起输入法,输入框被键盘遮挡的解决方法 参考文章: (1)h5开发安卓机型点击输入框调起输入法,输入框被键盘遮挡的解决方法 (2)https://www.cnblogs.co ...

  6. 基于AS开发的手机App源码 可以配合单片机wifi通信接收单片机数据

    基于AS开发的手机App源码 可以配合单片机wifi通信接收单片机数据 注:只有文字描述的功能,其它功能无法实现,也不会制作 ID:6939642638150328Uun丶

  7. 基于QT开发的音乐播放器(附源码)

    基于QT开发的音乐播放器(附源码) 一.简介 1.介绍 2.功能描述 3.系统功能层次模块图 4.各模块功能描述 (1)播放界面 (2)歌词 (3)歌曲信息 (4)歌曲列表 5.文件格式 6.运行环境 ...

  8. 基于JavaSwing开发MP3音乐播放器 课程设计 大作业源码 毕业设计

    基于JavaSwing开发MP3音乐播放器:   (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse+Jdk 运行效果图:  基于JavaSwing开发MP3音乐播放器:  ...

  9. Mendix开发网页移动App项目考虑因素

    Mendix开发网页移动App项目考虑因素 中州软件开发园 在使用mendix作为个人.公司企业内部管理网站移动App的开发平台时,会有一些需要考虑的问题: 1)评估应用程序交付定价模型的关键考虑因素 ...

  10. python能开发手机程序吗_python能否开发安卓应用app?当然可以,python助你轻松搞定...

    python是非常简单方便的编程语言,你可以用python很简洁的实现很多功能,今天就来说说如何用python开发安卓应用app. app的开发有两种方式: 第一种,混合开发.主要是通过一个容器来进行 ...

最新文章

  1. php接入微信运动计步功能,运动计步,微信运动究竟靠不靠谱?
  2. Git学习笔记:Git简介
  3. java io 结构_java 的IO类库的基本架构
  4. 今日arXiv精选 | 23篇顶会论文:ICASSP / ICCV / CIKM / ICME / AAAI
  5. rust游戏解封了吗_柚子君宾馆爬墙听隔壁声,潇天傲解封不罢休!继续专场嘲讽散打哥...
  6. 交际中你所不知道的说话的12个技巧!
  7. java求二维数组每行的最大值_用JAVA输入一个二维数组a[3][4]的元素值,求输出其元素最大值...
  8. 蔚来首座超充站落地苏州蔚来交付中心 已开启试运营
  9. Hands-on Lab (9) - 增加用户
  10. Android基础巩固进阶
  11. 加入MapReduce后完全分布式集群搭建
  12. 异步promise、Async/await介绍
  13. threejs 绘制球体_threejs地球仪制作
  14. 中国成为全球最活跃5G市场
  15. 【Unity3D日常开发】Unity3D中实现向Web服务器上传图片以及下载图片功能
  16. Grow up way
  17. ReSharper未按照预期路径安装后如何修改(Windows 找不到“C:\Program Files (x86)\JetBrains\Installations”。请检查拼写并重试)
  18. 基于QuartusII的verilog数字时钟设计
  19. 关于叶子的思维导图_2020年1月8日叶子老师讲思维导图的制作方法
  20. 《GIT视频教程》(p41~p44)

热门文章

  1. 45 岁以后的程序员都到哪里去了?
  2. 前后端分离之后,如何保护你的API
  3. java addmonth_JAVA:int month = n.get(Calendar.MONTH)+1;为何要加1?
  4. SpringMVC 中 @RequestBody 接收Json数组对象及对象参数中有数组参数
  5. fiddler抓包后Jmeter实现登录接口
  6. 学习日记12、list集合中根据某个字段进行去重复操作
  7. jQuery解决ajax请求的跨域问题
  8. canvas绘制圆环
  9. 【Linux】解决Wesnoth中文乱码问题
  10. java_log_02