Я вызываю getChannelData и выполняю некоторые действия и удаляю значения из Float32Array.
Как я могу закодировать эти данные обратно в форму, которую можно сохранить?
const blob = new Blob(this.chunks, { type: audioType });
// generate audio url from blob
const audioContext = new (window.AudioContext ||
window.webkitAudioContext)();
// reading the file with file reader using a method that uses read file in a promise
ReadFile(blob).then((arrayBuffer) => {
audioContext.decodeAudioData(arrayBuffer).then((audioBuffer) => {
const audioBufferSourceNode = audioContext.createBufferSource();
const numChannels = audioBuffer.numberOfChannels;
const leftChannelArray = audioBuffer.getChannelData(0);
// audioBufferSourceNode.buffer = leftChannelArray;
let rightChannelArray;
if (numChannels>1) {
rightChannelArray = audioBuffer.getChannelData(1);
}
const monoChannelTrimmed = trimSilence(leftChannelArray, rightChannelArray) //we look on both sides for silence, we delete the array values and merge the channels
//Now i want to turn monoChannelTrimmed into a usable audio file
Превратить этот канал во что-то полезное — вот с чем я боролся. Я пробовал некоторые предложения из других вопросов в этой области, таких как Преобразование Float32Array в Uint8Array с сохранением представления IEEE 754 Но ничего не сработало, если у кого-то есть предложения, я бы очень хотел их попробовать.