2015-07-21 92 views
2

我在我的應用程序中遇到了問題。如何在JavaScript中將base64 wav轉換爲base64 mp3

我想錄制聲音並使用Cordova將其存儲在iOS中。我已經有一個base64/wav文件,但它非常重,所以我想將它轉換爲base64/mp3。

哪種算法可以讓我做到這一點?

例子:

b64Wavtob64mp3("base64/..."); 
// Return a mp3 base64 

提前感謝!

+0

看看這些線:http://stackoverflow.com/questions/23676396/convert-wav-to-mp3-using-javascript 您可以使用Recordmp3js。 – artex

+0

對不起artex,但我要求科爾多瓦,我在瀏覽器中實現了該解決方案,但在設備不起作用。不管怎麼說,還是要謝謝你! – mryuso92

+0

@Goyuso,你已經找到解決方案了嗎?謝謝 –

回答

0

我完全忘了,因爲base64我一直在尋找壓縮

解決的聲音!我做了wav2m4a插件。

https://github.com/xu-li/phonegap-wav2m4a

但我想更進一步,所以我在iOS上修改了CDVSound.m。 我只是按照以上說明:

https://gist.github.com/jlsuarezs/d48094d431307a466496

  1. 添加到startRecordingAudio方法上CDVSound.m此:

    的NSDictionary * recordSettings = [NSDictionary的dictionaryWithObjectsAndKeys: [NSNumber的numberWithInt:kAudioFormatMPEG4AAC],AVFormatIDKey, [ NSNumber numberWithFloat:16000.0],AVSampleRateKey, [NSNumber numberWithInt:1],AVNumberOfChannelsKey, nil];

  2. 替換:

    audioFile.recorder = [[CDVAudioRecorder的alloc] initWithURL:audioFile.resourceURL設置:無誤差:&錯誤]; //默認PCM記錄

    隨着:

    audioFile.recorder = [[CDVAudioRecorder的alloc] initWithURL:audioFile.resourceURL設置:recordSettings錯誤:&錯誤];

    1. 更改另一行: CDVSound.m會檢查以確保您使用的是wav文件。只需在文件的頂部更改此設置即可避免此情況。

    定義RECORDING_WAV @ 「WAV」

我把它改爲:

#define RECORDING_WAV @"m4a" 

#define RECORDING_M4A @"m4a" 

,並更改文件實例包含RECORDING_WAV變量。