javascript tutorial Web Audio API-¿grabar en MP3?




which of the following is not an attribute of html5 audio element (5)

Lo pregunto porque no pude encontrar la respuesta en ningún lado. He implementado exitosamente RecorderJS para grabar la entrada del micrófono en JS. Sin embargo, el archivo grabado es WAV, lo que da como resultado archivos grandes. Estoy buscando una manera de grabar con JS directamente a MP3, o codificar los bits de alguna manera a MP3 en lugar de WAV.

¿Cómo puede hacerse esto? ¿Existe una función de API de audio web que pueda hacer eso o un codificador JS MP3 de algún tipo?



Hay una biblioteca escrita en javascript puro, llamada lamejs. Para codificar mp3s de audio en bruto. Es mucho más rápido que compilación emscripten de libmp3lame. https://github.com/zhuker/lamejs

Ejemplo de uso:

lib = new lamejs();
mp3encoder = new lib.Mp3Encoder(1, 44100, 128); //mono 44.1khz encode to 128kbps
samples = new Int16Array(44100); //one second of silence
var mp3 = mp3encoder.encodeBuffer(samples); //encode mp3

Me sentí frustrado con este problema y con las soluciones existentes, por lo que se me ocurrió algo más simple:

https://github.com/sb2702/audioRecord.js

Uso

Crear un objeto grabador (asíncrono porque requiere permiso del usuario)

    Recorder.new(function(recorder){ 

    }); 

Iniciar la grabación

         recorder.start();        

Detiene la grabación

         recorder.stop();    

Exportar como mp3

         recorder.exportMP3(function(mp3Blob){ 

            console.log("Here is your blob: " + URL.createObjectURL(mp3Blob));

          });

Principalmente basado en RecorderJS, pero cambió algunas cosas para exportar a archivos mp3 y no tener que jugar con AudioContext / navigator.getUs







web-audio