日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

js通過audioContext實現3D音效

瀏覽:170日期:2024-04-01 18:12:33

本文實例為大家分享了js通過audioContext實現3D音效的具體代碼,供大家參考,具體內容如下

前言

AudioContext的setPosition實現3D音效

效果展示

js通過audioContext實現3D音效

代碼展示

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>3D Audio</title> <style>body, div{ margin: 0px; padding: 0px; text-align: center;}#cav{ border: 1px solid black; border-radius: 4px; margin: 10px auto;} </style></head><body><canvas height='200'></canvas></body><script> let Aud = function (ctx, url) {this.ctx = ctx;this.url = url;// source節點this.src = ctx.createBufferSource();// 多個處理節點組this.pNode = []; }; Aud.prototype = {output(){ for (let i = 0; i < this.pNode.length; i++){let tNode = this.src;for (let j = 0; j < this.pNode[i].length; j++){ tNode.connect(this.pNode[i][j]); tNode = this.pNode[i][j];}tNode.connect(this.ctx.destination); }},play(loop){ this.src.loop = loop || false; this.output(); this.src.start(0);},stop() { this.src.stop();},addNode(node, groupIdx = 0){ this.pNode[groupIdx] = this.pNode[groupIdx] || []; this.pNode[groupIdx].push(node);} }; //設置節點類型 Aud.NODETYPE = {GNODE: 0 // 表示gainNode節點 } //Aud管理對象 AudManager = {urls: [],items: [],ctx: null,init(){ try{this.ctx = new AudioContext(); }catch (e) {console.log(`${e}`); }},load(callback){ for (let i = 0; i < this.urls.length; i++){this.loadSingle(this.urls[i], callback); }},loadSingle(url, callback){ let req = new XMLHttpRequest(); req.open(’GET’, url, true); req.responseType = ’arraybuffer’; let self = this; req.onload = function () {self.ctx.decodeAudioData(this.response) .then(buf => { let aud = new Aud(self.ctx, url); aud.src.buffer = buf; self.items.push(aud); if (self.items.length == self.urls.length){callback(); }},err => { console.log(`decode error:${err}`);} ) }; req.send();},createNode(nodeType, param){ let node = null; switch (nodeType) {case 1: node = this.ctx.createPanner(); break;case 2: node = this.ctx.createScriptProcessor(param[0], param[1], param[2]); break;default: node = this.ctx.createGain(); } return node;} }; let ctx = document.getElementById(’cav’).getContext(’2d’);// 定義移動點坐標 let cX = 190,cY = 100,deg = 0; window.onload = function (){init(); } function renderCir(x, y, r, col){ctx.save();ctx.beginPath();ctx.arc(x, y, r, 0, Math.PI*2);ctx.closePath();ctx.fillStyle = col;ctx.fill();ctx.restore(); } function renderCenter(){renderCir(160, 100, 8, 'red'); } function renderCat() {renderCir(cX, cY, 8, 'blue'); } function init(){AudManager.urls = ['test.mp3'];AudManager.init();AudManager.load(()=>{ let pNod1 = AudManager.createNode(1); let sound1 = AudManager.items[0]; sound1.addNode(pNod1); sound1.play(true); timeHandle();}); } function timeHandle() {window.setInterval(()=>{ ctx.clearRect(0,0,320,200); let rad = Math.PI*deg / 180; let sx = 90*Math.cos(rad),sy = 90*Math.sin(rad); cX = 160 + sx; cY = 100 + sy; AudManager.items[0].pNode[0][0].setPosition(sx*0.1, -sy*0.1, 0); renderCenter(); renderCat(); deg++;}, 30); }</script></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品亚洲二区| 日韩成人一级| 成人av二区| 日韩欧美美女在线观看| 欧美日韩视频免费观看| 欧美精选一区二区三区| 亚洲日本国产| 亚洲高清激情| 日产精品一区二区| 国产精品一区二区三区www| 噜噜噜躁狠狠躁狠狠精品视频| 日本欧美一区二区| 国产视频一区三区| 国产欧美另类| 亚洲精品一级二级三级| 欧美aa国产视频| 久久亚洲资源中文字| 亚洲精品视频一二三区| 五月天综合网站| 日本免费久久| 国产成人精选| 久久精品网址| 久久丁香四色| 国产精品免费大片| 日韩欧美精品一区二区综合视频| 精品一区毛片| 福利在线免费视频| 国产精品久一| 日韩精品国产精品| 亚洲日产国产精品| 亚洲图片久久| 午夜电影亚洲| 一区二区亚洲精品| 99在线精品免费视频九九视 | 牛牛精品成人免费视频| 国产精品久久久久久久久久齐齐 | 亚洲最大av| 国产亚洲精品美女久久| www.com.cn成人| 丝袜亚洲精品中文字幕一区| 日韩不卡一二三区| 免费污视频在线一区| 免费人成网站在线观看欧美高清| 日本免费在线视频不卡一不卡二| 成人高清一区| 亚洲第一精品影视| 国产亚洲一卡2卡3卡4卡新区| 国产成人精品一区二区三区在线| 五月婷婷六月综合| 你懂的亚洲视频| 亚洲激情中文| 国产毛片精品| 欧美va天堂在线| 国产剧情一区| 好看的亚洲午夜视频在线| 欧美精品福利| 久久精品av| 国产精品亚洲人成在99www| 日本少妇一区| 日本免费在线视频不卡一不卡二| 欧美精品第一区| 喷白浆一区二区| 亚洲黄色网址| 欧美综合精品| 久久精品亚洲人成影院| 日韩成人一级| 欧美日韩国产亚洲一区| 麻豆国产欧美一区二区三区| 免费不卡在线视频| 成人久久一区| 精品无人区麻豆乱码久久久| 久久福利一区| 欧美成a人免费观看久久| 日韩av中文字幕一区二区 | 精品国产欧美| 日韩在线视频一区二区三区| 新版的欧美在线视频| 久久国产麻豆精品| 亚洲欧美久久久| 人人精品亚洲| 久久精品毛片| 国产欧美另类| 日本中文字幕一区二区视频| 国内精品福利| 色在线视频观看| 久久这里只有| 国产精品大片免费观看| 亚洲欧洲av| 国产精品7m凸凹视频分类| 国产精品久久久久蜜臀| 国产精品红桃| 国产精品一区免费在线| 日本精品另类| 日韩中文字幕| 综合亚洲自拍| 久久亚洲风情| 免费精品视频最新在线| 欧美在线亚洲综合一区| 久久青草久久| 亚洲手机视频| 黑丝一区二区| 免费人成黄页网站在线一区二区| 国产午夜精品一区二区三区欧美 | 美女一区网站| 日韩在线欧美| 欧美成人精品| 五月天激情综合网| 好吊视频一区二区三区四区| 99精品视频在线| 日韩精品一区二区三区免费观影 | 激情偷拍久久| 九九综合九九| 欧美aa国产视频| 国产高清一区二区| 水野朝阳av一区二区三区| 老鸭窝亚洲一区二区三区| 免费在线观看视频一区| 日本在线成人| 久久精品国产999大香线蕉 | 久久中文视频| 麻豆精品网站| 日韩精品91亚洲二区在线观看| 日本少妇一区二区| 国产日韩视频| 成人午夜在线| 久久中文字幕av| 亚洲经典在线| 日本中文字幕一区二区视频| 国产香蕉精品| 国产videos久久| 免费观看久久av| 亚洲精品日本| 免费一级欧美在线观看视频| 亚洲国产欧美日本视频| 神马午夜在线视频| 精品在线91| 日韩精品一区二区三区中文| 久久免费精品| 性欧美69xoxoxoxo| 日韩成人av影视| 中文一区一区三区高中清不卡免费| 欧美成人高清| 国产精品mm| 婷婷综合五月| 欧美欧美黄在线二区| 日韩高清中文字幕一区二区| 午夜在线视频观看日韩17c| 国产亚洲精品美女久久久久久久久久| 福利一区在线| 国产亚洲午夜| 美腿丝袜亚洲三区| 欧美高清一区| 国产精品多人| 五月综合激情| 久久精品国产久精国产爱| 日韩一级网站| 麻豆国产精品777777在线| 亚洲少妇诱惑| 在线中文字幕播放| 热久久久久久| 在线成人直播| 黄毛片在线观看| 欧美亚洲一级| 好吊视频一区二区三区四区| 国产精品红桃| 在线亚洲自拍| 伊伊综合在线| 国产精品三级| 亚洲最新av| 激情欧美一区二区三区| 国产剧情在线观看一区| 日av在线不卡| 激情综合在线| 不卡福利视频| 欧美激情五月| 青青草伊人久久| 另类av一区二区| 婷婷综合亚洲| 久久国产免费| 美女视频黄 久久| 91精品一区| 日韩精品视频在线看| 影音国产精品| 日韩中文首页| 亚洲国产福利| 日本久久综合| 久久精品午夜| 国产精品多人| av高清不卡| 国产精品精品国产一区二区| 日本午夜精品久久久| 在线免费观看亚洲| 99国产精品私拍| 婷婷中文字幕一区| 成人国产精品久久| 欧美日韩一二三四| 日韩不卡在线观看日韩不卡视频| 蜜桃视频免费观看一区| 亚洲免费资源| 日韩精品第一|