Я пытаюсь закодировать мои образцы данных напрямую в mp3 или wav в mp3
Я написал код преобразования wav ниже:
function encodeWAV(samples) {
console.log("sample rate in encoded wav:"+sampleRate);
let buffer = new ArrayBuffer(44 + samples.length * 2);
let view = new DataView(buffer);
/* RIFF identifier */
writeString(view, 0, 'RIFF');
/* RIFF chunk length */
view.setUint32(4, 36 + samples.length * 2, true);
/* RIFF type */
writeString(view, 8, 'WAVE');
/* format chunk identifier */
writeString(view, 12, 'fmt ');
/* format chunk length */
view.setUint32(16, 16, true);
/* sample format (raw) */
view.setUint16(20, 1, true);
/* channel count */
view.setUint16(22, numChannels, true);
/* sample rate */
view.setUint32(24, 16000, true);
/* byte rate (sample rate * block align) */
view.setUint32(28, 16000 * 4, true);
/* block align (channel count * bytes per sample) */
view.setUint16(32, numChannels * 2, true);
/* bits per sample */
view.setUint16(34, 16, true);
/* data chunk identifier */
writeString(view, 36, 'data');
/* data chunk length */
view.setUint32(40, samples.length * 2, true);
floatTo16BitPCM(view, 44, samples);
return view;
}
}, self);
Хотя я попытался посмотреть парунапример, - libmp3lame.js и ffmpeg , но я не знаю, как импортировать эти сценарии в мое приложение ReactJS, потому что компоненты сделаны в JSX если в этих файлах нет класса, как мы его используем?Мы не можем использовать эти сценарии в index.html , потому что тогда объект рекордера, упомянутый в компоненте, не может быть понятен, я слышу от людей, говорящих, что нет никакой разницы в JavaScript и ReactJS, и это действительно заставляет меня смеяться, хотя язнаю, что в конечном итоге этот код будет перенесен в JavaScript, который может понять браузер, но я не могу ожидать написания JavaScript без классовой функции, готовой к использованию, без экспорта и волшебного ожидания работы.