How to Convert Audio to Base64 with JavaScript
// Convert audio file to Base64
function audioToBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = () => {
const base64 = reader.result; // Includes data URL prefix
resolve(base64);
};
reader.onerror = reject;
reader.readAsDataURL(file);
});
}
// Usage with file input
document.querySelector('input[type="file"]').addEventListener('change', async (e) => {
const file = e.target.files[0];
const base64 = await audioToBase64(file);
console.log(base64); // data:audio/mpeg;base64,//uQx...
// Get only Base64 string (without prefix)
const base64Only = base64.split(',')[1];
});
// Get audio duration
function getAudioDuration(file) {
return new Promise((resolve) => {
const audio = new Audio();
audio.src = URL.createObjectURL(file);
audio.onloadedmetadata = () => {
resolve(audio.duration);
URL.revokeObjectURL(audio.src);
};
});
}