亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > HTML5開發(fā)動態(tài)音頻圖的實現(xiàn)

HTML5開發(fā)動態(tài)音頻圖的實現(xiàn)

熱門標簽:只辦理400電話 拓展地圖標注 平?jīng)龅貓D標注位置怎么弄 機器人外呼系統(tǒng)存在哪些能力 高德地圖標注地點糾錯 電話機器人電銷系統(tǒng)掙話費 如何獲取地圖標注客戶 電話機器人黑斑馬免費 南昌仁和怎么申請開通400電話

概要

本次我們會使用html5和js開發(fā)一個動態(tài)音頻圖

用到的技術點:
(1)js
(2)canvas + audio
(3)Web Audio API

實現(xiàn)方式:

(1)首先對于界面實現(xiàn)的考慮,由于區(qū)塊非常多,我們使用傳統(tǒng)dom節(jié)點實現(xiàn)是非常困難的(會占用大量的電腦CPU)。在這里,我們考慮使用canvas進行渲染
(2)前端中,我們遵循盡量少用js控制dom節(jié)點的原則。能用css3實現(xiàn)的特效,就不要用js實現(xiàn)。(因為js不是標記語言,而是腳本語言,與html5不是同一種語言。會浪費瀏覽器大量時間加載,造成瀏覽器性能的浪費)。因此,用js就少用dom,用dom就盡量用css。
(3)通過Web Audio API在音頻節(jié)點上進行音頻操作(即實現(xiàn)音頻可視化),流程圖如下:

在圖中,音頻上下文提供了音頻處理的一套系統(tǒng)方法。輸入源指音樂文件,通過名稱引入;效果就是對輸入源進行加工,如制作音頻圖、音波圖、3D環(huán)繞、低音音效等;輸出就是把效果輸出到耳機、揚聲器等目的地。

canvas引入

在當下,除了布局使用dom節(jié)點外,特效基本都是通過canvas實現(xiàn)了。

canvas好處:
(1)寫特效非常強大,性能優(yōu)
(2)用于做游戲。由于flash將于2020年退役,現(xiàn)在的游戲開始轉(zhuǎn)向用html5制作
(3)前端渲染大數(shù)據(jù),數(shù)據(jù)可視化,大屏數(shù)據(jù)展示

canvas流程:通過js創(chuàng)建畫筆

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style type="text/css">
        *{
            margin: 0;
            /* 外邊距為0,使canvas能夠占滿全屏 */
        }
        #canvas{
            background: linear-gradient(
                135deg,
                rgb(142,132,133) 0%,
                rgb(230,132,110) 100%
            );
            /*創(chuàng)建線性漸變圖像*/
        }
        
    </style>
</head>
<body>
    <canvas id="canvas" width="500" height="500"></canvas>

    <script>
        var cxt=canvas.getContext('2d');//創(chuàng)建了畫筆
        cxt.beginPath();//開始畫
        cxt.closePath();//畫完了
        
        cxt.fillStyle='#f2f';
        cxt.arc(250,250,100,0,2*Math.PI,false);
        cxt.fill();
    </script>
</body>
</html>

在創(chuàng)建線性漸變圖像時,若100%后邊加“,”,谷歌便加載不出來;若不加,便能加載出來。但是不知道為何

這里尤其注意js里canvas的流程,創(chuàng)建畫筆-》開始畫-》畫完了-》補充顏色、形狀信息。其中前三步都是套路,只有如何去畫根據(jù)任務的不同,代碼不同

Web Audio APi流程

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <audio id="audio" src="mp3/1.mp3" controls></audio>

    <script>
        
        
        var oCtx=new AudioContext();//創(chuàng)建音頻對象

        var oAudio=document.querySelector('audio');
        var audioSrc=oCtx.createMediaElementSource(oAudio);
        //給音頻對象創(chuàng)建媒體源

        var analyser=oCtx.createAnalyser();//創(chuàng)建分析機
        audioSrc.connect(analyser);//把分析機連接到媒體源上
        analyser.connect(oCtx.destination);//把分析機得到的結果和揚聲器相連

    </script>
</body>
</html>

這里要注意的是,audio中的autoplay、js中的audio.play()已經(jīng)失效(谷歌瀏覽器的安全策略:聲音不能自動播放,必須在用戶有了操作后才能播放)

上述流程中少了最關鍵的一步:如何分析音頻數(shù)據(jù),這一步根據(jù)實現(xiàn)的任務不同,內(nèi)容不同。但是其余的步驟都是一樣的,滿滿的套路

動態(tài)音頻圖的開發(fā)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
        *{
            margin: 0;
        }
        #canvas{
            background:linear-gradient(
                135deg,
                rgb(142,132,133) 0%,
                rgb(230,132,110) 100%
            );
        }
    </style>
</head>
<body>
    <audio id="audio" src="mp3/1.mp3" controls></audio>
    <button type="button" onclick="play()"></button>
    <canvas id="canvas"></canvas>

    <script>
        //先引入canvas畫筆的創(chuàng)建流程
        var cCxt=canvas.getContext('2d');//創(chuàng)建2D畫筆
        cCxt.beginPath();//開始畫
        cCxt.closePath();//畫完了

        //設計畫布的樣式
        //設置畫布大小為整個屏幕
        canvas.width=window.innerWidth;
        canvas.height=window.innerHeight;
        //設置線條的漸變顏色
        var oW=canvas.width; var oH=canvas.height;
        var color=cCxt.createLinearGradient(oW/2,oH/2,oW/2,oH/2-100);
        color.addColorStop(0,'#000');
        color.addColorStop(.5,'#069');
        color.addColorStop(1,'#f6f');

        
        function play(){
            //先引入API函數(shù),走完Web Audio API的流程
            var oCtx=new AudioContext();//創(chuàng)建音頻對象
            var oAudio=document.querySelector('audio');
            var audioSrc=oCtx.createMediaElementSource(oAudio);//為音頻對象創(chuàng)建媒體源
            var analyser=oCtx.createAnalyser();//為音頻對象創(chuàng)建分析機
            audioSrc.connect(analyser);//將分析機與媒體源連接
            analyser.connect(oCtx.destination);//將分析機與揚聲器相連接
            var count=80;//音頻條的條數(shù)
            var voiceHeight=new Uint8Array(analyser.frequencyBinCount);//建立一個數(shù)據(jù)緩沖區(qū)(此時為空)
        
            setInterval(draw(analyser,voiceHeight,count),1000);
            oAudio.play();
        
         }

        function draw(analyser,voiceHeight,count){
            analyser.getByteFrequencyData(voiceHeight);//將當前頻率數(shù)據(jù)傳入到無符號字節(jié)數(shù)組中,進行實時連接
            var step=Math.round(voiceHeight.length/count);//每隔step個數(shù),取一個數(shù)組里的數(shù)
            for(var i=0;i<count;i++){
                var audioHeight=voiceHeight[step*i];
                cCxt.fillStyle=color;
                cCxt.fillRect(oW/2+(i*10),oH/2,7,-audioHeight);
                cCxt.fillRect(oW/2-(i*10),oH/2,7,-audioHeight);
             }
           //console.log(voiceHeight);
        }
        

        
    </script>
</body>
</html>

上邊的代碼是不可行的,找了一下午也沒找出錯誤到底出在哪里...問題主要如下:

(1)在谷歌瀏覽器中,顯示歌在播放,但是沒有聲音。console.log(voiceHeight)即圖中注釋部分沒有注釋掉時,voiceHeight只出現(xiàn)一次,而不是1000ms出現(xiàn)一次。沒有圖像

(2)在edge瀏覽器中,歌曲能正常播放。voiceHeight仍然只出現(xiàn)一次,沒有圖像

到此這篇關于HTML5開發(fā)動態(tài)音頻圖的實現(xiàn)的文章就介紹到這了,更多相關HTML5動態(tài)音頻圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

標簽:永州 新疆 西藏 漯河 棗莊 青島 池州 遼源

巨人網(wǎng)絡通訊聲明:本文標題《HTML5開發(fā)動態(tài)音頻圖的實現(xiàn)》,本文關鍵詞  HTML5,開發(fā),動態(tài),音頻,圖,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5開發(fā)動態(tài)音頻圖的實現(xiàn)》相關的同類信息!
  • 本頁收集關于HTML5開發(fā)動態(tài)音頻圖的實現(xiàn)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    精品视频免费观看| 国产视频久久久久| 九九精品久久久久久久久| 久久国产精品只做精品| 中文字幕Aⅴ资源网| 久久成人性色生活片| 国产网站麻豆精品视频| 精品国产一区二区三区国产馆| 欧美一区二区三区性| 国产精品1024永久免费视频 | 国产一区二区精品在线观看| 天天做人人爱夜夜爽2020毛片| 精品国产亚洲人成在线| 91麻豆国产| 一a一级片| 91麻豆精品国产自产在线观看一区 | 精品视频免费在线| 国产伦精品一区三区视频| 青青久久精品| 午夜家庭影院| 99热精品在线| 99色精品| 欧美18性精品| 欧美日本国产| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日本伦理黄色大片在线观看网站| 久草免费在线色站| 国产成人精品影视| 久久精品欧美一区二区| 中文字幕97| 麻豆系列 在线视频| 你懂的日韩| 亚飞与亚基在线观看| 99久久精品费精品国产一区二区| 国产麻豆精品hdvideoss| 欧美18性精品| 国产国语在线播放视频| 欧美激情一区二区三区在线| 亚洲第一页乱| 色综合久久天天综合观看| 欧美激情影院| 欧美一区二区三区在线观看| 亚洲不卡一区二区三区在线| 你懂的福利视频| 九九热精品免费观看| 国产伦精品一区二区三区在线观看| 二级特黄绝大片免费视频大片| 亚洲爆爽| 香蕉视频久久| 青青青草影院| 人人干人人草| 日韩专区第一页| 日韩专区一区| 国产不卡在线观看| 国产亚洲精品aaa大片| 中文字幕Aⅴ资源网| 精品视频在线看| 日本特黄特黄aaaaa大片| 午夜在线影院| 99久久精品国产片| 国产麻豆精品免费视频| 国产91精品系列在线观看| 欧美爱色| 国产福利免费视频| 尤物视频网站在线| 成人免费一级纶理片| 青青久热| 人人干人人插| 韩国毛片| 九九久久99综合一区二区| 国产高清在线精品一区二区 | 国产精品自拍在线观看| 精品毛片视频| 尤物视频网站在线| 久草免费资源| 久久99爰这里有精品国产| 国产成人啪精品视频免费软件| 国产高清视频免费观看| 999久久久免费精品国产牛牛| 精品在线视频播放| 韩国三级视频在线观看| 韩国毛片| 国产不卡精品一区二区三区| 国产国语在线播放视频| 日韩免费片| 国产麻豆精品高清在线播放| 国产精品自拍在线观看| 国产91精品系列在线观看| 日韩男人天堂| 成人在激情在线视频| 国产极品精频在线观看| 亚欧成人乱码一区二区| 你懂的在线观看视频| 日韩avdvd| 国产高清在线精品一区a| 成人在免费观看视频国产| 午夜在线亚洲| 亚洲精品中文字幕久久久久久| 天天做日日干| 精品毛片视频| 精品国产一区二区三区久| 高清一级片| 久久国产影院| 韩国毛片| 毛片的网站| 国产伦理精品| 欧美国产日韩一区二区三区| 香蕉视频久久| 天天做日日爱夜夜爽| 一a一级片| 亚洲爆爽| 欧美a级大片| 麻豆网站在线看| 精品国产一区二区三区久久久蜜臀| 你懂的福利视频| 黄视频网站在线观看| 欧美a级成人淫片免费看| 日本免费区| 韩国毛片免费| 精品国产三级a| 999精品在线| 91麻豆精品国产高清在线| 你懂的日韩| 国产不卡精品一区二区三区| 国产a视频| 国产91丝袜在线播放0| 久久久久久久免费视频| 国产一区二区精品尤物| 黄视频网站在线看| 麻豆午夜视频| 久久国产影视免费精品| 精品视频在线看| 黄视频网站在线看| 欧美激情影院| 日韩av成人| 成人高清视频在线观看| 精品国产一区二区三区免费| 久久久久久久网| a级毛片免费全部播放| 国产成人精品一区二区视频| 青青久久精品国产免费看| 成人高清护士在线播放| 日本免费看视频| 国产极品精频在线观看| 国产一区免费观看| 国产极品精频在线观看| 黄视频网站免费| 91麻豆国产| 四虎久久影院| 国产网站麻豆精品视频| 日韩字幕在线| 国产一级强片在线观看| 天天做人人爱夜夜爽2020毛片| 国产91精品系列在线观看| 亚洲www美色| 欧美一区二区三区在线观看| 日日夜夜婷婷| 国产麻豆精品高清在线播放| 美国一区二区三区| 日韩av东京社区男人的天堂| 日本特黄特色aa大片免费| 精品国产三级a| 精品久久久久久中文字幕2017| 精品久久久久久影院免费| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 午夜在线观看视频免费 成人| 国产伦精品一区二区三区无广告| 成人免费观看视频| 精品国产一区二区三区免费| 国产精品自拍一区| 成人免费福利片在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 成人免费观看视频| 国产一区二区精品尤物| 99热精品在线| 欧美1区| 国产一区二区高清视频| 日韩专区一区| 国产a免费观看| 日韩男人天堂| 国产欧美精品| 亚欧成人乱码一区二区| 黄色短视屏| 国产精品自拍一区| 91麻豆爱豆果冻天美星空| 九九干| 亚州视频一区二区| 久久99爰这里有精品国产| 亚洲天堂在线播放| 国产原创视频在线| 欧美一级视频免费观看| 高清一级片| 亚欧成人乱码一区二区| 国产伦理精品| 欧美大片a一级毛片视频| 精品在线视频播放| 日本免费乱人伦在线观看 | 成人高清护士在线播放| 国产a视频| 国产综合成人观看在线|