Baseline Widely available
AnalyserNode
ì¸í°íì´ì¤ì getFloatTimeDomainData()
ë©ìëë ì ë¬ë Float32Array
ë°°ì´ ë´ë¡ íì¬ íí, ì¦ ìê° ìì ë°ì´í°ë¥¼ ë³µì¬í©ëë¤.
var audioCtx = new AudioContext();
var analyser = audioCtx.createAnalyser();
var dataArray = new Float32Array(analyser.fftSize); // Float32Arrayë fftSizeì ê°ì 길ì´ì¼ íìê° ììµëë¤
analyser.getFloatTimeDomainData(dataArray); // getFloatTimeDomainData()ë¡ë¶í° ë°íë ë°ì´í°ë¡ Float32Array를 ì±ìëë¤
매ê°ë³ì
array
ìê° ìì ë°ì´í°ê° ë³µì¬ë Float32Array
. ë§ì½ ë°°ì´ì´ AnalyserNode.frequencyBinCount
ë³´ë¤ ë ì ì ìì를 ê°ì§ê³ ìë¤ë©´, ì´ê³¼í ììë íë½ë©ëë¤. ë§ì½ ì´ê²ì´ íìí ê²ë³´ë¤ ë ë§ì ìì를 ê°ì§ê³ ìë¤ë©´, ì´ê³¼í ììë 무ìë©ëë¤.
ìì.
ìì ë¤ìì ìì ë AnalyserNode
를 ìì±í기 ìí AudioContext
ì ê·¸ë¦¬ê³ ëì ë°ë³µì ì¼ë¡ ìê° ìì ë°ì´í°ë¥¼ ìì§íê³ íì¬ ì¤ëì¤ ì
ë ¥ì "ì¤ì¤ë¡ì¤ì½í ì¤íì¼ì" ì¶ë ¥ì 그리기 ìí requestAnimationFrame
ê³¼ <canvas>
ì 기본 ì¬ì©ì ë³´ì¬ì¤ëë¤. ë ìë²½í ìì© ìì /ì 보를 ë³´ë ¤ë©´ Voice-change-O-matic-float-data ë°ëª¨ë¥¼ íì¸íì¸ì (ìì¤ ì½ëë ë³´ì¸ì).
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var analyser = audioCtx.createAnalyser();
...
analyser.fftSize = 1024;
var bufferLength = analyser.fftSize;
console.log(bufferLength);
var dataArray = new Float32Array(bufferLength);
canvasCtx.clearRect(0, 0, WIDTH, HEIGHT);
function draw() {
drawVisual = requestAnimationFrame(draw);
analyser.getFloatTimeDomainData(dataArray);
canvasCtx.fillStyle = 'rgb(200, 200, 200)';
canvasCtx.fillRect(0, 0, WIDTH, HEIGHT);
canvasCtx.lineWidth = 2;
canvasCtx.strokeStyle = 'rgb(0, 0, 0)';
canvasCtx.beginPath();
var sliceWidth = WIDTH * 1.0 / bufferLength;
var x = 0;
for(var i = 0; i < bufferLength; i++) {
var v = dataArray[i] * 200.0;
var y = HEIGHT/2 + v;
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