日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

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

發布時間:2023/12/3 HTML 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html5app大赛,Anyoffice -HTML5大赛 悦心(基于H5开发安卓音乐app)-项目总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

悅心,一款音樂播放器應用。由“女立方”團隊開發。眼下。較為流行的音樂播放器有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);

}

總結

以上是生活随笔為你收集整理的html5app大赛,Anyoffice -HTML5大赛 悦心(基于H5开发安卓音乐app)-项目总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。