使用JavaScript将wav转换为mp3 [英] convert wav to mp3 using javascript
本文介绍了使用JavaScript将wav转换为mp3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
下面是一段代码,我想将wav formate转换为mp3。提到Record.js。但它已经过去了。谁能解决这个问题? (View包含空的DataView,即DataView {})
var blob = new Blob([view],{type:'音频/ wav'});
//让我们在本地保存
outputElement.innerHTML ='现在移交文件......';
var url =(window.URL || window.webkitURL).createObjectURL(blob);
var link = window.document.createElement('a');
link.href = url;
link.download ='output.wav';
var click = document.createEvent(Event);
click.initEvent(click,true,true);
link.dispatchEvent(click);
audioplayer.src = url;
解决方案
您可以使用 Recordmp3js ,因为它会直接提供mp3音频。
<如果你想了解它,我实现了一个非常简单的版本 here 即可。请注意,使用此实现转换的wav需要是单声道的,否则结果将变得混乱。
var convert = function(){
var arrayBuffer = this.result;
var buffer = new Uint8Array(arrayBuffer);
data = parseWav(buffer);
var config = {
mode:3,
channels:1,
samplerate:data.sampleRate,
bitrate:data.bitsPerSample
};
var mp3codec = Lame.init();
Lame.set_mode(mp3codec,config.mode || Lame.JOINT_STEREO);
Lame.set_num_channels(mp3codec,config.channels || 2);
Lame.set_num_samples(mp3codec,config.samples || -1);
Lame.set_in_samplerate(mp3codec,config.samplerate || 44100);
Lame.set_out_samplerate(mp3codec,config.samplerate || 44100);
Lame.set_bitrate(mp3codec,config.bitrate || 128);
Lame.init_params(mp3codec);
var array = Uint8ArrayToFloat32Array(data.samples);
var mp3data = Lame.encode_buffer_ieee_float(mp3codec,array,array);
var url ='data:audio / mp3; base64,'+ encode64(mp3data.data);
convertedPlayer.src = url;
convertedLink.href = url;
var name = file.name.substr(0,file.name.lastIndexOf('。'));
convertedLink.textContent = name +'。mp3';
converted.style.display ='block';
Lame.encode_flush(mp3codec);
Lame.close(mp3codec);
mp3codec = null;
};
Below is a code, I would like to convert wav formate to mp3. Refered to Record.js. But it is going over my head. Can anyone solve this? (View consists of empty DataView i.e, DataView {})
var blob = new Blob ( [ view ], { type : 'audio/wav' } );
// let's save it locally
outputElement.innerHTML = 'Handing off the file now...';
var url = (window.URL || window.webkitURL).createObjectURL(blob);
var link = window.document.createElement('a');
link.href = url;
link.download = 'output.wav';
var click = document.createEvent("Event");
click.initEvent("click", true, true);
link.dispatchEvent(click);
audioplayer.src = url;
解决方案
You can use Recordmp3js since it will give the mp3 audio directly.
If you want to understand it, I implemented a very simple version here. Notice that the wavs converted with this implementation need to be mono or the result will be messy.
var convert = function(){
var arrayBuffer = this.result;
var buffer = new Uint8Array(arrayBuffer);
data = parseWav(buffer);
var config = {
mode : 3,
channels:1,
samplerate: data.sampleRate,
bitrate: data.bitsPerSample
};
var mp3codec = Lame.init();
Lame.set_mode(mp3codec, config.mode || Lame.JOINT_STEREO);
Lame.set_num_channels(mp3codec, config.channels || 2);
Lame.set_num_samples(mp3codec, config.samples || -1);
Lame.set_in_samplerate(mp3codec, config.samplerate || 44100);
Lame.set_out_samplerate(mp3codec, config.samplerate || 44100);
Lame.set_bitrate(mp3codec, config.bitrate || 128);
Lame.init_params(mp3codec);
var array = Uint8ArrayToFloat32Array(data.samples);
var mp3data = Lame.encode_buffer_ieee_float(mp3codec, array, array);
var url = 'data:audio/mp3;base64,'+encode64(mp3data.data);
convertedPlayer.src = url;
convertedLink.href = url;
var name = file.name.substr(0, file.name.lastIndexOf('.'));
convertedLink.textContent = name + '.mp3';
converted.style.display = 'block';
Lame.encode_flush(mp3codec);
Lame.close(mp3codec);
mp3codec = null;
};
这篇关于使用JavaScript将wav转换为mp3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文