使用 lame 庫將音頻 pcm文件編碼爲mp3.

iOS 平臺: iOS 使用 lame 這個開源的 mp3編碼庫將 pcm 文件編碼爲 mp3文件。初次體驗一下音頻編解碼。(在音視頻開發過程中,不可能所有的編碼解碼處理都由開發從零編寫,因此要藉助一些第三方庫)

1.創建一個 iOS 工程,在頁面上畫一個按鈕,然後添加一個點擊按鈕事件,用於點擊後把 pcm音頻文件編碼爲 mp3文件。

- (IBAction)startEncode:(id)sender {

    Mp3Encoder *encoder = new Mp3Encoder();

    // 源文件的的路徑

    const char* pcmFilePath = [[CommonUtil bundlePath:@"vocal.pcm"] cStringUsingEncoding:NSUTF8StringEncoding];

    // 要生成的mp3文件的路徑

    const char *mp3FilePath = [[CommonUtil documentsPath:@"vocal.mp3"] cStringUsingEncoding:NSUTF8StringEncoding];

    int sampleRate = 44100;

    int channels = 2;

    int bitRate = 128 * 1024;

    // 初始化解碼器,傳入源文件路徑,生成的文件路徑,採樣頻率,聲道數,碼率

    encoder->Init(pcmFilePath, mp3FilePath, sampleRate, channels, bitRate);

    // 編碼

    encoder->Encode();

    //關閉文件

    encoder->Destory();

    delete encoder;

    NSLog(@"Encode Success");

    NSLog(@"生成結果:%s",mp3FilePath);

}

  • 這裏主要整理下 lame 的生成和使用,例子和效果可以參考最下面 Demo鏈接。

1.下載lame庫 https://sourceforge.net/projects/lame/files/lame/. 自己選擇一個版本進行編譯吧,我一般都是選擇最新的。

2.下載build的腳本, https://github.com/kewlbear/lame-ios-build 3.下載完上面兩個文件,把兩個文件放在同一個目錄的路徑下,然後終端打開,cd到這個路徑下面,執行:sudo ./build-lame.sh 一般會生成3個文件。如果只有兩個或者一個,參考下面文章修改錯誤:】 https://www.jianshu.com/p/8f6fcf85e143

4.生成的文件可以參考:https://www.cnblogs.com/XYQ-208910/p/7650759.html 5.運行下面demo例子中代碼,自己嘗試生成一下 lame,自己敲一下代碼,體驗下編解碼的過程和 lame的首次使用。

Demo例子參考:https://github.com/fangxuan0/iosMp3Encode Demo文章參考:https://blog.csdn.net/sinat_36772813/article/details/85268190

自身不足之處: 1.各個音頻文件優缺點:https://wenku.baidu.com/view/cdea117a5beef8c75fbfc77da26925c52cc591be.html

2.c++

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章