鿍奍;: ãã®æ©è½ã¯éæ¨å¥¨ã«ãªãã¾ãããã¾ã 対å¿ãã¦ãããã©ã¦ã¶ã¼ãããããããã¾ãããããã§ã«é¢é£ããã¦ã§ãæ¨æºããåé¤ããã¦ããããåé¤ã®æç¶ãä¸ã§ããããäºææ§ã®ããã ãã«æ®ããã¦ããå¯è½æ§ãããã¾ãã使ç¨ãé¿ããã§ããã°æ¢åã®ã³ã¼ãã¯æ´æ°ãã¦ãã ããããã®ãã¼ã¸ã®ä¸é¨ã«ããäºææ§ä¸è¦§è¡¨ãè¦ã¦å¤æãã¦ãã ããããã®æ©è½ã¯çªç¶åä½ããªããªãå¯è½æ§ããããã¨ã«æ³¨æãã¦ãã ããã
outputBuffer
㯠AudioProcessingEvent
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®èªã¿åãå°ç¨ããããã£ã§ãé³å£°å¦çã¤ãã³ãã®åºåãããã¡ã¼ã表ãã¾ãã
åºåãããã¡ã¼ã¯ AudioBuffer
ãªãã¸ã§ã¯ãã§è¡¨ããã¾ãããã®ãªãã¸ã§ã¯ãã¯é³å£°ãã£ã³ãã«ã®éåãæ ¼ç´ããåãã£ã³ãã«ã¯ä¸é£ã®æ¯å¹
ã¨ãã¦ã¨ã³ã³ã¼ããããé³å£°ä¿¡å·æ³¢å½¢ãè¡¨ãæµ®åå°æ°ç¹æ°ã®å¤ã®é
åã§ãããã£ã³ãã«ã®æ°ã¨åãã£ã³ãã«ã®é·ã㯠AudioBuffer
ã®ãã£ã³ãã«æ°ã¨ãããã¡ã¼ãµã¤ãºã®ããããã£ã«ãã£ã¦æ±ºã¾ãã¾ãã
AudioBuffer
ãªãã¸ã§ã¯ãã§ãã
ãã®ä¾ã§ã¯ãScriptProcessorNode
ã 256 ãµã³ãã«ã®ãããã¡ã¼ãµã¤ãºã2 ã¤ã®å
¥åãã£ã³ãã«ã2 ã¤ã®åºåãã£ã³ãã«ã§ä½æããã¦ãã¾ããaudioprocess
ã¤ãã³ããçºè¡ãããã¨ãå
¥åãããã¡ã¼ã¨åºåãããã¡ã¼ãã¤ãã³ããªãã¸ã§ã¯ãããåå¾ããã¾ããå
¥åãããã¡ã¼å
ã®é³å£°ãã¼ã¿ãå¦çãããçµæãåºåãããã¡ã¼ã«æ¸ãè¾¼ã¾ãã¾ãããã®å ´åãé³å£°ãã¼ã¿ã¯ 0.5 åã«ç¸®å°ããã¾ãã
const audioContext = new AudioContext();
const processor = audioContext.createScriptProcessor(256, 2, 2);
processor.addEventListener("audioprocess", (event) => {
const inputBuffer = event.inputBuffer;
const outputBuffer = event.outputBuffer;
for (let channel = 0; channel < outputBuffer.numberOfChannels; channel++) {
const inputData = inputBuffer.getChannelData(channel);
const outputData = outputBuffer.getChannelData(channel);
// Process the audio data here
for (let i = 0; i < outputBuffer.length; i++) {
outputData[i] = inputData[i] * 0.5;
}
}
});
processor.connect(audioContext.destination);
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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