Baseline Widely available
ã¦ã§ããªã¼ãã£ãª API ã® AudioWorkletProcessor
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãç¬èªã® AudioWorkletNode
ãç¨ããé³å£°å¦çã³ã¼ãã表ãã¾ãããã㯠AudioWorkletGlobalScope
ã«åå¨ããã¦ã§ããªã¼ãã£ãªã¬ã³ããªã³ã°ã¹ã¬ããã§å®è¡ããã¾ãã䏿¹ã対å¿ãã AudioWorkletNode
ã¯ã¡ã¤ã³ã¹ã¬ããã§å®è¡ããã¾ãã
ã¡ã¢: AudioWorkletProcessor
ã¨ãã®æ´¾çã¯ã©ã¹ã¯ãã¦ã¼ã¶ã¼ã®ã³ã¼ãããç´æ¥çæãããã¨ã¯ã§ãã¾ããããããã¯å¯¾å¿ãã AudioWorkletNode
ã®çæã«ä¼´ã£ã¦å
é¨ã§ã®ã¿çæããã¾ããæ´¾çã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãªãã·ã§ã³ãªãã¸ã§ã¯ãã¨ã¨ãã«å¼ã°ãããããç¬èªã®åæåå¦çãè¡ããã¨ãã§ãã¾ãã詳ããã¯ã³ã³ã¹ãã©ã¯ã¿ã¼ã®ãã¼ã¸ãåç
§ãã¦ãã ããã
AudioWorkletProcessor()
æ°ãã AudioWorkletProcessor
ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹ãçæãã¾ãã
port
èªåå°ç¨
å¦çå¨ã¨å¯¾å¿ãã AudioWorkletNode
ã®éã®åæ¹åéä¿¡ã«ç¨ãã MessagePort
ãè¿ãã¾ãããã䏿¹ã®ç«¯ã¯ããã¼ãã® port
ããããã£ããåç
§ã§ãã¾ãã
AudioWorkletProcessor
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯èªèº«ã®ã¡ã½ãããå®ç¾©ãã¦ãã¾ãããããããé³å£°ã¹ããªã¼ã ãå¦çããããã«å¼ã°ãã process()
ã¡ã½ãããå®ç¾©ããªããã°ãªãã¾ããã
AudioWorkletProcessor
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ã¤ãã³ãã«åå¿ãã¾ããã
ç¬èªã®é³å£°å¦çã³ã¼ããå®ç¾©ããã«ã¯ãAudioWorkletProcessor
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®æ´¾çã¯ã©ã¹ãä½ãå¿
è¦ãããã¾ãããã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ã¯å®ç¾©ããã¦ãã¾ããããæ´¾çã¯ã©ã¹ã«ã¯ process
ã¡ã½ãããå¿
è¦ã§ãããã®ã¡ã½ãã㯠128 ãµã³ãã«ãã¬ã¼ã ãããªããããã¯ããããã«ã¤ãã¦å¼ã°ããå
¥åã®é
åãåºåã®é
åã(å®ç¾©ããã¦ããã°) ç¬èªã® AudioParam
ã®è¨ç®ãããå¤ã弿°ã¨ãã¦åãåãã¾ããåºåã®é
åã®åæå¤ã¯ç¡é³ã§ããå
¥åã¨é³å£°ãã©ã¡ã¼ã¿ã¼ã®å¤ãåºåã®é
åãåããã®ã«ä½¿ç¨ã§ãã¾ãã
ãªãã·ã§ã³ã¨ãã¦ããã¼ãã§ç¬èªã® AudioParam
ã使ãããå ´åãå¦çå¨ã® éçã²ãã¿ã¼ ã¨ã㦠parameterDescriptors
ããããã£ãå®ç¾©ã§ãã¾ããè¿ããã AudioParamDescriptor
ããã¼ã¹ã¨ãããªãã¸ã§ã¯ãã®é
åããAudioWorkletNode
ã®çææã« AudioParam
ãçæããããç¨ãããã¾ãã
çæããã AudioParam
ã¯ãã¼ãã® parameters
ããããã£ã«é
ç½®ãããlinearRampToValueAtTime
ãªã©ã®æ¨æºã¡ã½ãããç¨ãã¦èªååã§ãã¾ãããããã§è¨ç®ãããå¤ã¯å¦çå¨ã® process()
ã¡ã½ããã«æ¸¡ããããã¼ãã®åºåã®å½¢æã«ä½¿ç¨ã§ãã¾ãã
以ä¸ã«ãç¬èªã®é³å£°å¦çã®ä»çµã¿ãä½ãã¢ã«ã´ãªãºã ã®ä¾ã示ãã¾ãã
å¥ã®ãã¡ã¤ã«ãä½ãã¾ãã
ãã®ãã¡ã¤ã«ã§ä»¥ä¸ãè¡ãã¾ãã
AudioWorkletProcessor
ã¯ã©ã¹ãç¶æ¿ (ãæ´¾çã¯ã©ã¹ã®ä½æãã®ç¯ãåç
§) ãããã®ä¸ã§èªèº«ã® process()
ã¡ã½ãããå®ç¾©ãã¾ããAudioWorkletGlobalScope.registerProcessor()
ã¡ã½ããã§ç»é²ãã¾ããé³å£°ã³ã³ããã¹ãã® audioWorklet
ããããã£ã® addModule()
ã¡ã½ããã§ããã®ãã¡ã¤ã«ãèªã¿è¾¼ã¿ã¾ãã
ãã®å¦çå¨ããã¼ã¹ã¨ãã AudioWorkletNode
ãçæãã¾ããå¦çå¨ã¯ AudioWorkletNode
ã®ã³ã³ã¹ãã©ã¯ã¿ã¼å
é¨ã§çæããã¾ãã
çæãããã¼ããä»ã®ãã¼ãã«æ¥ç¶ãã¾ãã
以ä¸ã®ä¾ã§ã¯ããã¯ã¤ããã¤ãºãåºåããç¬èªã® AudioWorkletNode
ã使ãã¾ãã
ã¾ãããã¯ã¤ããã¤ãºãåºåããç¬èªã® AudioWorkletProcessor
ãå®ç¾©ããç»é²ããå¿
è¦ãããã¾ããããã¯å¥ã®ãã¡ã¤ã«ã§è¡ããã¨ã«æ³¨æãã¦ãã ããã
// white-noise-processor.js
class WhiteNoiseProcessor extends AudioWorkletProcessor {
process(inputs, outputs, parameters) {
const output = outputs[0];
output.forEach((channel) => {
for (let i = 0; i < channel.length; i++) {
channel[i] = Math.random() * 2 - 1;
}
});
return true;
}
}
registerProcessor("white-noise-processor", WhiteNoiseProcessor);
次ã«ãã¡ã¤ã³ã¹ã¯ãªããã§å¦çå¨ããã¼ãããå¦çå¨ã®ååãæ¸¡ã㦠AudioWorkletNode
ã®ã¤ã³ã¹ã¿ã³ã¹ã使ãããã®ãã¼ããé³å£°ã°ã©ãã«æ¥ç¶ãã¾ãã
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("white-noise-processor.js");
const whiteNoiseNode = new AudioWorkletNode(
audioContext,
"white-noise-processor",
);
whiteNoiseNode.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