Baseline Widely available
playbackRate
㯠AudioBufferSourceNode
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ããããã£ã§ã ãã®ããããã£ã¯ãé³å£°è³ç£ã®åçé度ãå®ç¾©ãã k-rate AudioParam
ã§ãã
1.0 ã®å¤ã¯ããã®ãµã³ããªã³ã°ã¬ã¼ãã¨åãé度ã§åçãããã¨ã示ãã 1.0 ããå°ããå¤ã¯ããããã£ããã¨ã1.0 ãã大ããå¤ã¯ãé常ããéãé³å£°ãåçãããã¨ã«ãªãã¾ããæ¢å®å¤ã¯ 1.0
ã§ãã ä»ã®å¤ã«è¨å®ãããå ´åãAudioBufferSourceNode
ã¯åºåã«éãåã«é³å£°ãåãµã³ããªã³ã°ãã¾ãã
ãã® value
ã¯ãé³å£°ã®åçã¬ã¼ããå
ã®ãµã³ããªã³ã°ã¬ã¼ãã«å¯¾ããå鲿°ã®å²åã§ç¤ºãæµ®åå°æ°ç¹åã®å¤ã§ãã
44.1 kHz ï¼44,100 ãµã³ãã«æ¯ç§ï¼ã§ãµã³ããªã³ã°ãããé³å£°ãå«ããµã¦ã³ããããã¡ã¼ãèãã¦ã¿ã¾ããããããã¤ãã® playbackRate
ã®å¤ã§ä½ãã§ããããè¦ã¦ã¿ã¾ãããã
playbackRate
ã 1.0 ã«ããã¨ãé常ã®é度ã 44,100 Hz ã§åçãã¾ããplaybackRate
ã 0.5 ã«ããã¨ãååã®é度ã 22,050 Hz ã§åçãã¾ããplaybackRate
ã 2.0 ã¯é³å£°ã®åçã¬ã¼ããåã«ã㦠88,200 Hz ã§åçãã¾ããplaybackRate
ã®è¨å®
ãã®ä¾ã§ã¯ãã¦ã¼ã¶ã¼ã "Play" ãæ¼ãã¨ãé³å£°ãã©ãã¯ãèªã¿è¾¼ãã§ãã³ã¼ãããAudioBufferSourceNode
ã«å
¥ãã¾ãã
ä¾ãã°ããã®ä¾ã§ã¯ loop
ããããã£ã true
ã«è¨å®ãããã©ãã¯ãã«ã¼ããã¦åçãããããã«ãã¦ãã¾ãã
ã¦ã¼ã¶ã¼ã¯ãplaybackRate
ããããã£ãç¯å²ã³ã³ããã¼ã«ã使ç¨ãã¦è¨å®ãããã¨ãã§ãã¾ãã
ã¡ã¢: å®éã«åä½ããä¾ãè¦ã (ã¾ãã¯ãã½ã¼ã¹ã³ã¼ããè¦ã)ãã¨ãã§ãã¾ãã
let audioCtx;
let buffer;
let source;
const play = document.getElementById("play");
const stop = document.getElementById("stop");
const playbackControl = document.getElementById("playback-rate-control");
const playbackValue = document.getElementById("playback-rate-value");
async function loadAudio() {
try {
// Load an audio file
const response = await fetch("rnb-lofi-melody-loop.wav");
// Decode it
buffer = await audioCtx.decodeAudioData(await response.arrayBuffer());
} catch (err) {
console.error(`Unable to fetch the audio file. Error: ${err.message}`);
}
}
play.addEventListener("click", async () => {
if (!audioCtx) {
audioCtx = new AudioContext();
await loadAudio();
}
source = audioCtx.createBufferSource();
source.buffer = buffer;
source.connect(audioCtx.destination);
source.loop = true;
source.playbackRate.value = playbackControl.value;
source.start();
play.disabled = true;
stop.disabled = false;
playbackControl.disabled = false;
});
stop.addEventListener("click", () => {
source.stop();
play.disabled = false;
stop.disabled = true;
playbackControl.disabled = true;
});
playbackControl.oninput = () => {
source.playbackRate.value = playbackControl.value;
playbackValue.textContent = playbackControl.value;
};
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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