Показать сообщение отдельно
  #10 (permalink)  
Старый 30.09.2016, 22:03
Аватар для Опан
Кандидат Javascript-наук
Отправить личное сообщение для Опан Посмотреть профиль Найти все сообщения от Опан
 
Регистрация: 15.03.2013
Сообщений: 100

Допустим, ты загнал звук пианино из МП3-файла в ArrayBuffer() и декодировал данные, как предложил Aetae. Потом нужно создать объект DataView() (это такой массив, в который можно записывать разнотипную информацию) и отформатировать его содержимое, как в файле формата WAV и в качестве аудиоданных загнать содержимое ArrayBuffer(). Получится то же файл в формате WAV, только в оперативке:
var buffer = new ArrayBuffer();
// тут загоняем аудиоданные
var view = new DataView(buffer);
// тут загоняем всё, что нужно
var audioBlob = new Blob([view], { type: 'audio/wav' });
var url = URL.createObjectURL(audioBlob);
var audio= new Audio(url);
audio.play();

Примерно так (хотя я чуть было не запутался)
Я всё сделал чисто программно, и для заполнения ArrayBuffer использовал математический алгоритм, а не внешний источник (файл). Если интересует сам алгоритм, могу кратко описать в личке.

Последний раз редактировалось Опан, 01.10.2016 в 11:29.
Ответить с цитированием