Baseline Widely available
createBuffer()
㯠BaseAudioContext
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ãæ°ãã空㮠AudioBuffer
ãªãã¸ã§ã¯ããçæããããã«ä½¿ç¨ããã¾ãããã®ãªãã¸ã§ã¯ãã«ãã¼ã¿ã代å
¥ããAudioBufferSourceNode
ãä»ãã¦åçãããã¨ãã§ãã¾ãã
é³å£°ãããã¡ã¼ã®è©³ç´°ã«ã¤ãã¦ã¯ã AudioBuffer
ã®ãªãã¡ã¬ã³ã¹ãã¼ã¸ãåç
§ãã¦ãã ããã
ã¡ã¢: 以å㯠createBuffer()
ãå§ç¸®ããããã¼ã¿ãåãåãããã³ã¼ãããããµã³ãã«ãè¿ããã¨ãã§ãã¾ãããããã³ã¼ãããã¹ã¦ã¡ã¤ã³ã¹ã¬ããã§è¡ããããã createBuffer()
ãä»ã®ã³ã¼ãã®å®è¡ããããã¯ããã®ã§ããã®æ©è½ã¯ä»æ§æ¸ããåé¤ããã¾ãããéåæã¡ã½ãã decodeAudioData()
ã¯åããã¨ããã¾ãã MP3 ãã¡ã¤ã«ã®ãããªå§ç¸®ãããé³å£°ãåãåããAudioBuffer
ãç´æ¥è¿ãã¾ãããã㦠AudioBufferSourceNode
ã§åçãããã¨ãã§ããã®ã§ãã MP3 ãåçãããããªåç´ãªç¨éã§ã¯ã decodeAudioData()
ã使ç¨ããå¿
è¦ãããã¾ãã
createBuffer(numOfChannels, length, sampleRate)
弿°
ã¡ã¢: é³å£°ãããã¡ã¼ã®ä»çµã¿ã¨ããããã®å¼æ°ã®æå³ã«ã¤ãã¦ã®è©³ãã説æã¯ãåºæ¬æ¦å¿µã¬ã¤ãã®é³å£°ãããã¡ã¼ï¼ãã¬ã¼ã ããµã³ãã«ããã£ã³ãã«ã«æ¸ããã¦ãã¾ãã
numOfChannels
æ´æ°ã§ããã®ãããã¡ã¼ãæã¤ã¹ããã£ã³ãã«æ°ã表ãã¾ããæ¢å®å¤ã¯ 1 ã§ããã¹ã¦ã®ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã¯å°ãªãã¨ã 32 ãã£ã³ãã«ã«å¯¾å¿ããªããã°ãªãã¾ããã
length
æ´æ°ã§ããããã¡ã¼ã®ãµã¤ãºããµã³ãã«ãã¬ã¼ã åä½ã§è¡¨ãã¾ãï¼åãµã³ãã«ãã¬ã¼ã ã¯ããã¤ãåä½ã®ãµã³ãã«ã®ãµã¤ãºã« numOfChannels
ãæãããã®ã¨ãªãã¾ãï¼ãç¹å®ã®ç§æ°ã®é³å£°ã«ä½¿ç¨ãã length
ãæ±ºå®ããã«ã¯ã numSeconds * sampleRate
ã使ç¨ãã¾ãã
sampleRate
ç·å½¢é³å£°ãã¼ã¿ã®ãµã³ããªã³ã°ã¬ã¼ãï¼1 ç§ãããã®ãµã³ãã«ãã¬ã¼ã æ°ï¼ã§ãããã¹ã¦ã®ãã©ã¦ã¶ã¼ã¯ãå°ãªãã¨ã 8,000Hz ãã 96,000Hz ã®ç¯å²ã®ãµã³ããªã³ã°ã¬ã¼ãã«å¯¾å¿ããå¿ è¦ãããã¾ãã
æå®ããããªãã·ã§ã³ã«åºã¥ãã¦æ§æããã AudioBuffer
ã§ãã
NotSupportedError
DOMException
1 ã¤ä»¥ä¸ã®ãªãã·ã§ã³ãè² ã®å¤ã§ãããããããã¯ç¡å¹ãªå¤ã§ããå ´åã«çºçãã¾ãï¼ä¾ãã° numberOfChannels
ã対å¿ãã¦ããããã大ãããã sampleRate
ãå
¬ç§°ç¯å²å¤ã§ããå ´åãªã©ï¼ã
RangeError
ãããã¡ã¼ãå²ãå½ã¦ãã®ã«ååãªã¡ã¢ãªã¼ããªãå ´åã«çºçãã¾ãã
ã¾ãã弿°ã®ä½¿ãæ¹ã説æããããã«ãç°¡åãªä¾ãããã¤ãæãã¾ãã
const audioCtx = new AudioContext();
const buffer = audioCtx.createBuffer(2, 22050, 44100);
ãã®å¼ã³åºãã使ç¨ããã¨ãã¹ãã¬ãªãããã¡ã¼ï¼2 ãã£ã³ãã«ï¼ãå¾ããã AudioContext ã 44100Hz ï¼ã¨ã¦ãä¸è¬çã§ãã»ã¨ãã©ã®é常ã®ãµã¦ã³ãã«ã¼ãã¯ãã®ã¬ã¼ãã§åä½ãã¾ãï¼ã§åä½ãã¦ããããç¶æ ã§åçããã¨ã 0.5 ç§éï¼22050 ãã¬ã¼ã / 44100Hz = 0.5 ç§ï¼ã«ãªãã¾ãã
const audioCtx = new AudioContext();
const buffer = audioCtx.createBuffer(1, 22050, 22050);
ãã®å¼ã³åºãã使ç¨ããå ´åãã¢ãã©ã«ãããã¡ã¼ï¼1 ãã£ãã«ï¼ãå¾ããã AudioContext ã 44100Hz ã§åä½ãã¦ããç¶æ ã§åçããã¨ãèªåçã«*ãªãµã³ãã«*ãã㦠44100Hz ã¨ãªãï¼ããªãã¡ 44100 ãã¬ã¼ã ã«ãªãï¼ã 1.0 ç§éï¼44100 ãã¬ã¼ã / 44100Hz = 1 ç§ï¼ã«ãªãã¾ãã
ã¡ã¢: é³å£°ã®ãªãµã³ããªã³ã°ã¯ãç»åã®ãªãµã¤ãºã«ã¨ã¦ãä¼¼ã¦ãã¾ãã 16 x 16 ã®ç»åãæã£ã¦ãã¦ãããã 32 x 32 ã®é åãã£ã±ãã«ãããå ´åãããããªãµã¤ãºï¼ãªãµã³ããªã³ã°ï¼ãã¾ããçµæã¯ãï¼ãªãµã¤ãºã®ã¢ã«ã´ãªãºã ã«ãã£ã¦ã¯ãã¼ããããã¨ãã¸ãç«ã£ãããã¦ï¼å質ãè½ã¡ã¾ããããã¾ãããããªãµã¤ãºããç»åã¯ããã¹ãã¼ã¹ãå°ãããªãã¾ãããªãµã³ãã«ãããé³å£°ãå ¨ãåãã§ãã¹ãã¼ã¹ã¯ç¯ç´ã§ãã¾ãããå®éã«ã¯é«ã卿³¢æ°ã®ã³ã³ãã³ãï¼é«é³ï¼ãé©åã«åçãããã¨ã¯ã§ãã¾ããã
次ã¯å°ãè¤é㪠createBuffer()
ã®ä¾ãè¦ã¦ã¿ã¾ãããã 3 ç§éã®ãããã¡ã¼ãçæãããã¯ã¤ããã¤ãºãæ¸ãè¾¼ã¿ã AudioBufferSourceNode
ã§åçãã¾ããã³ã¡ã³ãã§ã¯ãä½ãèµ·ãã£ã¦ããã®ããæç¢ºã«èª¬æãã¦ãã¾ãã ã³ã¼ããã©ã¤ãã§å®è¡ããããã½ã¼ã¹ã表示ããããããã¨ãã§ãã¾ãã
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
// AudioContext ã®ãµã³ããªã³ã°ã¬ã¼ãã§ç©ºã® 3 ç§ã®ã¹ãã¬ãªãããã¡ã¼ã使ãã
const myArrayBuffer = audioCtx.createBuffer(
2,
audioCtx.sampleRate * 3,
audioCtx.sampleRate,
);
// ãããã¡ã¼ã«ãã¯ã¤ããã¤ãºãæ¸ãè¾¼ã
// åãªã -1.0 ãã 1.0 ã®éã®ä¹±æ°ã®å¤
for (let channel = 0; channel < myArrayBuffer.numberOfChannels; channel++) {
// ãã¼ã¿ãæ ¼ç´ããå®éã® ArrayBuffer ãå¾ãããï¼
const nowBuffering = myArrayBuffer.getChannelData(channel);
for (let i = 0; i < myArrayBuffer.length; i++) {
// Math.random() 㯠[0; 1.0] ã§ãã
// é³å£°ã¯ [-1.0; 1.0] ã§ããå¿
è¦ããã
nowBuffering[i] = Math.random() * 2 - 1;
}
}
// AudioBufferSourceNode ãå¾ã
// ãã㯠AudioBuffer ãåçããã¨ãã«ä½¿ã AudioNode ã§ãã
const source = audioCtx.createBufferSource();
// AudioBufferSourceNode ã«ãããã¡ã¼ãè¨å®ãã
source.buffer = myArrayBuffer;
// AudioBufferSourceNode ãåºåå
ã«æ¥ç¶ããã¨
// é³å£°ãèãããããã«ãªã
source.connect(audioCtx.destination);
// 鳿ºã®åçãå§ãã
source.start();
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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