ECMAScript-6 Audio Repeat Forever

时间:2017-05-27 10:15:59

标签: javascript audio ecmascript-6

我想创建一个永远重复的音频播放器,而不使用任何HTML。我怎么能在ECMAScript-6

中做到这一点

1 个答案:

答案 0 :(得分:1)

我真的不明白这个问题,但我觉得它很有趣,所以这里有一个解决方案,永远循环音频,根本不使用任何HTML,在浏览器中:

这使用浏览器在SVG文档中运行javascript的能力,并使用WebAudioAPI从DOM中播放声音:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
<script>
const aCtx = new AudioContext();
fetch('https://dl.dropboxusercontent.com/s/agepbh2agnduknz/camera.mp3')
    .then(r=>r.arrayBuffer())
    .then(b=>aCtx.decodeAudioData(b))
    .then(data=>{
        const audio_buf = aCtx.createBufferSource();
        audio_buf.buffer = data;
        audio_buf.loop = true;
        audio_buf.connect(aCtx.destination);
        audio_buf.start(0);
        });
</script>
</svg>

由于stack-snippets会将所有内容都包装在HTML文档中,因此这里是 live plunker