Baseline Widely available
createAnalyser()
㯠BaseAudioContext
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ã AnalyserNode
ã使ãã¾ããããã¯é³å£°ã®æéã¨å¨æ³¢æ°ãã¼ã¿ãå
¬éãããã¼ã¿ã®å¯è¦åãè¡ãã¾ãã
ã¡ã¢: AnalyserNode()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã AnalyserNode
ãçæããã®ã«æ¨å¥¨ãããæ¹æ³ã§ãã AudioNode ã®ä½æãåç
§ãã¦ãã ããã
ã¡ã¢: ãã®ãã¼ãã®è©³ãã説æã¯ã AnalyserNode
ã®ãã¼ã¸ãåç
§ãã¦ãã ããã
ãªãã
è¿å¤AnalyserNode
ã§ãã
次ã®ä¾ã§ã¯ã AudioContext ã使ç¨ã㦠Analyser ãã¼ãã使ãã requestAnimationFrame() ã使ç¨ãã¦ã¿ã¤ã ãã¡ã¤ã³ã®ãã¼ã¿ãç¹°ãè¿ãåéããç¾å¨ã®é³å£°å ¥åã®ããªã·ãã¹ã³ã¼ãå½¢å¼ãã®åºåãæç»ããåºæ¬çãªä½¿ç¨æ¹æ³ã示ãã¦ãã¾ããããå®å ¨ãªå¿ç¨ä¾ãæ å ±ã«ã¤ãã¦ã¯ã Voice-change-O-matic ã®ãã¢ãã覧ãã ããï¼é¢é£ã³ã¼ãã¯ã app.js 108-193 è¡ç®ãã覧ãã ããï¼ã
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
const analyser = audioCtx.createAnalyser();
// â¦
analyser.fftSize = 2048;
const bufferLength = analyser.frequencyBinCount;
const dataArray = new Uint8Array(bufferLength);
analyser.getByteTimeDomainData(dataArray);
// ç¾å¨ã®é³ã®ãªã·ãã¹ã³ã¼ãã®ããã«æã
function draw() {
drawVisual = requestAnimationFrame(draw);
analyser.getByteTimeDomainData(dataArray);
canvasCtx.fillStyle = "rgb(200 200 200)";
canvasCtx.fillRect(0, 0, WIDTH, HEIGHT);
canvasCtx.lineWidth = 2;
canvasCtx.strokeStyle = "rgb(0 0 0)";
canvasCtx.beginPath();
const sliceWidth = (WIDTH * 1.0) / bufferLength;
let x = 0;
for (let i = 0; i < bufferLength; i++) {
const v = dataArray[i] / 128.0;
const y = (v * HEIGHT) / 2;
if (i === 0) {
canvasCtx.moveTo(x, y);
} else {
canvasCtx.lineTo(x, y);
}
x += sliceWidth;
}
canvasCtx.lineTo(canvas.width, canvas.height / 2);
canvasCtx.stroke();
}
draw();
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4