Baseline Widely available
getByteTimeDomainData()
㯠AnalyserNode
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ã渡ããã Uint8Array
ï¼ç¬¦å·ãªããã¤ãé
åï¼ã«ãç¾å¨ã®æ³¢å½¢ã¾ãã¯æéé åã®ãã¼ã¿ãã³ãã¼ãã¾ãã
é
åã®æã¤è¦ç´ ã AnalyserNode.fftSize
ããå°ãªãã£ãå ´åãä½åãªè¦ç´ ã¯åé¤ããã¾ããå¿
è¦ä»¥ä¸ã®è¦ç´ ããã£ãå ´åãä½åãªè¦ç´ ã¯ç¡è¦ããã¾ãã
getByteTimeDomainData(array)
弿°
array
æéé åãã¼ã¿ã®ã³ãã¼å
ã® Uint8Array
ã§ãã é
åã®æã¤è¦ç´ ã AnalyserNode.fftSize
ããå°ãªãã£ãå ´åãä½åãªè¦ç´ ã¯åé¤ããã¾ããå¿
è¦ä»¥ä¸ã®è¦ç´ ããã£ãå ´åãä½åãªè¦ç´ ã¯ç¡è¦ããã¾ãã
ãªã (undefined
)ã
次ã®ä¾ã§ã¯ã AudioContext
ã§ AnalyserNode
ã使ãã requestAnimationFrame
㨠<canvas>
ã§æå»é åã®ãã¼ã¿ãç¹°ãè¿ãåéããç¾å¨ã®é³å£°å
¥åã®ããªã·ãã¹ã³ã¼ããåºåãæç»ããåºæ¬çãªä½¿ç¨æ¹æ³ã示ãã¾ãã ããå®å
¨ãªå¿ç¨ä¾/æ
å ±ã«ã¤ãã¦ã¯ã 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.fftSize;
const dataArray = new Uint8Array(bufferLength);
analyser.getByteTimeDomainData(dataArray);
// draw an oscilloscope of the current audio source
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)";
const sliceWidth = (WIDTH * 1.0) / bufferLength;
let x = 0;
canvasCtx.beginPath();
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(WIDTH, 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