Каким образом можно склеить два wav файла в один с помощью javascript (не один за другим, а путем наложения)? Необходимо мерджить несколько звуковых дорожек в одну на выходе получая один файл. Возможно ли это сделать средствами Web Audio API? Буду благодарен, если подкините ссылок, что читать, куда смотреть.

21 Авг 2019 в 06:27
211 +1
0
Ответы
1

Для склеивания и наложения двух или более звуковых файлов в один через Web Audio API вам нужно будет использовать AudioContext, AudioBuffer и другие методы и объекты API.

Вот примерный алгоритм, как это можно сделать:

Создайте AudioContext:var audioContext = new AudioContext();Загрузите ваши звуковые файлы и декодируйте их:function loadSound(url) {
return fetch(url)
.then(response => response.arrayBuffer())
.then(buffer => audioContext.decodeAudioData(buffer));
}
Promise.all([loadSound('file1.wav'), loadSound('file2.wav')])
.then(function(decodedBuffers) {
// Далее работайте с полученными AudioBuffer'ами
});Создайте новый AudioBuffer и объедините данные из двух и более AudioBuffer'ов:var mergedBuffer = audioContext.createBuffer(channels, length, sampleRate);
// Заполните данные нового буфера данными из других буферов
var data1 = buffer1.getChannelData(0);
var data2 = buffer2.getChannelData(0);
var mergedData = new Float32Array(Math.max(data1.length, data2.length));
for (var i = 0; i < mergedData.length; i++) {
mergedData[i] = (data1[i] || 0) + (data2[i] || 0);
}
mergedBuffer.getChannelData(0).set(mergedData);Воспроизведите полученный результат или сохраните его, используя Web Audio API.

Для более подробной информации и примеров вы можете обратиться к следующим ресурсам:

Официальная документация по Web Audio API: https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_APIПримеры использования Web Audio API для манипуляции звуком: https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Using_Web_Audio_APIСтатья о создании собственного аудиоредактора с использованием Web Audio API: https://www.html5rocks.com/en/tutorials/webaudio/intro/

Надеюсь, это поможет вам реализовать желаемую функциональность с помощью JavaScript и Web Audio API.

20 Апр в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 093 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир