小编sam*_*rad的帖子

使用Web Audio API将多个ArrayBuffer合并/分层为一个AudioBuffer

我需要分层循环.wav轨道,最终我将需要能够打开和关闭并保持同步。

首先,我加载了曲目,并停止BufferLoader了将加载的内容arraybuffer变成的AudioBuffer(因此false

        function loadTracks(data) {
            for (var i = 0; i < data.length; i++) {
                trackUrls.push(data[i]['url']);
            };
            bufferLoader = new BufferLoader(context, trackUrls, finishedLoading);
            bufferLoader.load(false);
            return loaderDefered.promise;
        }
Run Code Online (Sandbox Code Playgroud)

当您单击屏幕上的按钮时,它将调用startStop()

    function startStop(index, name, isPlaying) {
        if(!activeBuffer) {
            activeBuffer = bufferList[index];
        }else{
            activeBuffer = appendBuffer(activeBuffer, bufferList[index]);
        }
        context.decodeAudioData(activeBuffer, function(buffer){
            audioBuffer = buffer;
            play();
        })


    function play() {
        var scheduledTime = 0.015;
        try {
            audioSource.stop(scheduledTime);
        } catch (e) {}

        audioSource = context.createBufferSource();
        audioSource.buffer = …
Run Code Online (Sandbox Code Playgroud)

javascript merge arraybuffer audiobuffer web-audio-api

4
推荐指数
1
解决办法
2690
查看次数