2012-02-22 129 views
1

有沒有辦法將iphone記錄.caf文件轉換爲.mp3或amr文件?因爲caf文件需要上傳,而服務器部分不能使用這種格式。 我對音頻處理不熟悉。這裏是我的結論:如何把caf轉換成mp3/amr格式?

  1. iphone sdk沒有一個直接的API來做到這一點。我們只能更改編碼格式(AAC,IMA,iLBC,ALAC),請參閱ACAudioFileConvert演示。但它仍然是一個caf文件,我想知道是否可以通過此轉換爲mp3。

  2. 一些傢伙建議使用"LAME" api。任何人都可以在ios中使用它嗎?任何人都可以分享簡單的演示? 有人說可能會導致許可證問題?

任何人都可以給我任何建議嗎? 真誠的感謝!

回答

0

這很簡單: int讀取,寫入;

FILE *pcm = fopen("file.caf", "rb"); 
FILE *mp3 = fopen("file.mp3", "wb"); 
const int PCM_SIZE = 8192; 
const int MP3_SIZE = 8192; 

short int pcm_buffer[PCM_SIZE*2]; 
unsigned char mp3_buffer[MP3_SIZE]; 

lame_t lame = lame_init(); 
lame_set_in_samplerate(lame, 44100); 
lame_set_VBR(lame, vbr_default); 
lame_init_params(lame); 

do { 
    read = fread(pcm_buffer, 2*sizeof(short int), PCM_SIZE, pcm); 
    if (read == 0) 
    write = lame_encode_flush(lame, mp3_buffer, MP3_SIZE); 
    else 
    write = lame_encode_buffer_interleaved(lame, pcm_buffer, read, mp3_buffer, MP3_SIZE); 
    fwrite(mp3_buffer, write, 1, mp3); 
} while (read != 0); 

lame_close(lame); 
fclose(mp3); 
fclose(pcm); 
+0

它的轉換爲mp3文件..但數據只有噪音 – Bharathi 2016-04-04 12:40:39