Я хочу использовать веб-аудио OfflineAudioContext для сохранения некоторых коротких звуковых файлов в новый более длинный звуковой файл.Похоже, что OfflineAudioContext использует аудиобуфер для сохранения звука.Я использую аудио тег для загрузки своих звуковых файлов.Как я могу преобразовать звуковые файлы в аудио-буфер, который я могу передать в буфер OfflineAudioContext.Я не хочу использовать XMLHttpRequest для создания аудио буфера.Я хотел иметь возможность загрузить каждый звуковой файл, затем добавить его в буфер, а затем передать его в автономный контекст.Я пробовал несколько разных способов, но самое большее, что я сделал, - это передача пустого аудио-буфера в контекст, который просто дает мне файл без звука.
Я пробовал несколько функцийвеб-аудио контекст для создания нового буфера, но я либо получаю ошибки, либо нет звука
<html>
<body>
<audio controls controlsList = "nodownload" id="audio"><source id="audioSource" src="" />
Your browser does not support the audio format.</audio>
<script>
// define online and offline audio context
var audioCtx1 = new AudioContext();
var offlineCtx = new OfflineAudioContext(2,44100*40,44100);
var channels = 2;
// Create an empty two second stereo buffer at the
// sample rate of the AudioContext
var frameCount = audioCtx1.sampleRate * 2.0;
var myArrayBuffer = audioCtx1.createBuffer(2, frameCount, audioCtx1.sampleRate);
source = offlineCtx.createBufferSource();
var array = ['sound1.mp3','sound2.mp3','sound3.mp3']
var audio = document.querySelector('audio');
audio.src = array[0];
source.buffer = myArrayBuffer;
source.connect(offlineCtx.destination);
source.start();
//source.loop = true;
offlineCtx.startRendering();
offlineCtx.oncomplete = function(e) {
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var song = audioCtx.createBufferSource();
song.buffer = e.renderedBuffer;
song.connect(audioCtx.destination);
song.start();
console.log("completed!");
}
</script>
</body>
</html>
Я несколько раз менял код во время тестирования, я думаю, что с этим кодом, который я разместил, у меня просто нет звукаигры.