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

L3Byb3h5L2h0dHAvaW1nLmJsb2cuY3Nkbi5uZXQvMjAxNjA0MDgxNzM5MTUxMTI=.jpg

悦心,一款音乐播放器应用。由“女立方”团队开发。眼下。较为流行的音乐播放器有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标签获取声音源 source

var 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

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

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何执行shell脚本文件

文章目录 一、使用 shell 命令解释器执行脚本二、使用命令 source 执行脚本文件三、使用路径方式执行脚本文件为什么不能在当前目录直接执行当前目录下的脚本文件呢?四、使用命令 exec 执行脚本文件五、它们有什么区别六、验证是否开启子进程(一)通过父 shell 中的变量是否正…

python 40位的数减个位数_Python——进制表示与转换

在前面两篇文章中介绍了基本的数据类型(Python——记录3——数据类型1&#xff0c;Python——记录4——数据类型2)&#xff0c;其中讲到浮点数的计算是通过转换成二进制进行的&#xff0c;那么到底什么是二进制&#xff0c;以及计算机到底包含了哪些进制呢&#xff1f;其实0和1…

javaee概览_Java 9概览

javaee概览对于许多Java 9来说&#xff0c;似乎是一个维护版本&#xff0c;它推动了不能在Java 8中实现的项目Jigsaw。但是&#xff0c;随着JDK中的新模块系统以及与之相关的许多内部更改&#xff0c;Java 9也带来了开发人员工具箱中一些很棒的新内容。 以下是重点内容&#xf…

Linux 命令之 source -- 在当前Shell环境中从指定文件读取和执行命令

文章目录一、命令介绍二、命令格式三、命令示例一、命令介绍 source 命令会在当前 Shell 环境中从指定文件读取和执行命令。source 命令通常用于重新执行刚修改的初始化文件&#xff0c;使之立即生效&#xff0c;而不必注销并重新登录。 source 命令&#xff08;从 C Shell 而…

opc调试软件_组态王和三菱OPC软件完美演绎天塔之光

许多朋友因为在学习组态王的过程中因为没有实物PLC而发愁&#xff0c;这里我通过天塔之光实例分享一个三菱OPC软件模拟实物PLC与组态王通信的方法。一、需要软件组态王软件三菱PLC编程软件GX Works2三菱OPC软件MX OPC Configurator二、控制要求主画面如上图所示的天塔灯光&…

jar混淆,防止反编译,Allatori工具混淆jar包

文章目录 Allatori工具简介下载解压配置config.xml注意事项 Allatori工具简介 官网地址&#xff1a;https://allatori.com/ Allatori不仅混淆了代码&#xff0c;还最大限度地减小了应用程序的大小&#xff0c;提高了速度&#xff0c;同时除了你和你的团队之外&#xff0c;任何人…

计算机基础知识学前自测,2011计算机二级C语言学前自测题:DOS的基本操作

DOS的基本操作1.DOS系统启动后&#xff0c;下列文件中常驻内存的是( )。A)DOS.COM B)COMMAND.COMC)DISKCOPY.COM D)SYS.COM2.若当前盘为C盘&#xff0c;在A盘目录\data中只有文本文件test.DAT&#xff0c;A 盘当前目录为根目录&#xff0c;则查看该文件的内容可使用的命令是( )…

string拆分为int_拆分为流

string拆分为int我正在为我工​​作的公司准备正则表达式教程更新。 原始教程创建于2012年&#xff0c;从那时起Java发生了一点变化。 有新的Java语言版本&#xff0c;尽管Java中的正则表达式处理仍不完善&#xff08;nb。它仍使用非确定性FSA&#xff09;&#xff0c;但仍有一…

Linux 命令之 type -- 显示指定命令的类型

文章目录一、命令介绍二、命令格式三、命令类型四、常用选项五、命令示例&#xff08;一&#xff09;查看命令的类型&#xff08;二&#xff09;显示外部命令的绝对路径一、命令介绍 type 命令用来显示指定命令的类型&#xff0c;判断给出的指令是内部指令还是外部指令。 二、…

python 查找算法_python快速查找算法应用实例

文实例讲述了Python快速查找算法的应用&#xff0c;分享给大家供大家参考。具体实现方法如下&#xff1a;import randomdef partition(list_object,start,end):random_choice start#random.choice(range(start,end1))#把这里的start改成random()效率会更高些x list_object[ra…

驾校约车html网站源码,html5首汽约车微信感恩活动页面模板

html5整屏滚动css3特效&#xff0c;各种c3特效&#xff0c;手机端支持各种分辨率&#xff0c;感恩活动微信页面模板下载。资源下载此资源下载价格为4D币&#xff0c;请先登录资源文件列表codedown123-0831-42/css/animate.min.css , 61353codedown123-0831-42/css/reset.css , …

java+解析未知json_在Java中解析JSON时如何忽略未知属性– Jackson @JsonIgnoreProperties注释示例...

java解析未知json使用Jackson API在Java中解析JSON时的常见问题之一是&#xff0c;当您的JSON包含未知属性&#xff08;即您的Java类没有对应于所有JSON属性的所有字段&#xff09;时&#xff0c;该操作将失败。 例如&#xff0c;如果您正在使用REST Web服务中的JSON&#xff0…

双非计算机考研推荐学校传菜电梯,22考研双非院校排名Top100,前3名竟然是这几所!...

原标题&#xff1a;22考研双非院校排名Top100&#xff0c;前3名竟然是这几所&#xff01;大家好&#xff01;这里考个研吧&#xff01;近年来&#xff0c;很多双非高校发展进步很快&#xff0c;实力超过很多末流211大学&#xff01;国家也实行了双一流、学科评估等&#xff0c;…

按压缩格式整理打包(解包)和压缩(解压)命令

文章目录一、zip 格式&#xff08;一&#xff09;使用命令 zip 压缩文件&#xff08;二&#xff09;使用命令 unzip 解压 zip 包二、tar 格式&#xff08;一&#xff09;打包文件&#xff08;二&#xff09;解包 tar 包三、tar.gz 格式方式一&#xff1a;利用已经打包好的tar文…

4线电子围栏安装示意图_知识积累|周界防护-脉冲电子围栏的安装

如今人们对于住宅需求早已今非昔比&#xff0c;不但需要足够大的空间&#xff0c;而且对于住宅所处位置是否交通便利&#xff0c;环境如何&#xff0c;光照情况都有要求&#xff0c;但是最关注的问题还是住宅的安全问题。如今的社会科技发达&#xff0c;不法分子的手段也层出不…

非对称加密 公钥私钥_选择Java加密算法第3部分–公钥/私钥非对称加密

非对称加密 公钥私钥抽象 这是涵盖Java加密算法的三部分博客系列的第3部分。 该系列涵盖如何实现以下功能&#xff1a; 使用SHA–512散列 使用AES–256的单密钥对称加密 RSA–4096 这第三篇文章详细介绍了如何实现非对称的RSA-4096公/私钥加密。 让我们开始吧。 免责声明 …

Linux 命令之 compress -- unix 档案压缩命令

文章目录一、命令介绍二、常用选项三、命令示例&#xff08;一&#xff09;压缩文件&#xff08;二&#xff09;解压文件一、命令介绍 compress 命令使用“Lempress-Ziv”编码压缩数据文件。compress 是一个相当古老的 unix 档案压缩程序&#xff0c;文件经它压缩后&#xff0…

计算机电源风扇维修,电脑电源开关维修和电源风扇加油图解全过程.doc

窗体顶端窗体底端电源开关维修及电源风扇加油图解全过程2010-05-06 17:56:19 来源&#xff1a;计算机故障查询网 浏览&#xff1a;804次-今天一朋友拿了部联想电脑(虽然俺不喜欢,但每个人有自己的爱好,就没说啥)给我,说让我帮他的电脑体检一下,说开不了机于是开展程序化工作,朋…

内部收益率irr_介绍一个神器,内部收益率IRR

内部回报率IRR这个概念&#xff0c;艾米姐在很多地方都讲到了。可以这么说&#xff0c;任何的理财产品&#xff0c;都可以用这个概念来测算一下收益到底如何。听起来IRR确实很强大啊。那它到底是个什么东东呢&#xff1f;今天就来说一说。一、什么是内部收益率IRR&#xff1f;这…

如何在Java中处理ConcurrentModificationException? 在循环中从ArrayList中删除元素时要当心...

从Java中从ArrayList中删除元素时常见的问题之一是ConcurrentModificationException。 如果您对索引使用经典的for循环或增强的for循环&#xff0c;并尝试使用remove()方法从ArrayList中remove()元素&#xff0c;则将获得C oncurrentModificationException但如果使用Iterator的…