1
綜觀了libmp3lame的API,所有的功能:編碼單聲道PCM文件與了libmp3lame/liblame MP3 /跛腳
1任取左,右聲道,像這樣的:
int CDECL lame_encode_buffer (
lame_global_flags* gfp, /* global context handle */
const short int buffer_l [], /* PCM data for left channel */
const short int buffer_r [], /* PCM data for right channel */
const int nsamples, /* number of samples per channel */
unsigned char* mp3buf, /* pointer to encoded MP3 stream */
const int mp3buf_size); /* number of valid octets in this
stream */
2-採取交錯數據,如下圖所示:
int CDECL lame_encode_buffer_interleaved(
lame_global_flags* gfp, /* global context handlei */
short int pcm[], /* PCM data for left and right
channel, interleaved */
int num_samples, /* number of samples per channel,
_not_ number of samples in
pcm[] */
unsigned char* mp3buf, /* pointer to encoded MP3 stream */
int mp3buf_size); /* number of valid octets in this
stream */
雖然人們可以選擇MONO而不是立體聲,但是這種情況也是如此。使用:
lame_set_mode(lame,MPEG_mode_e::MONO);
但是,那麼我怎麼能得到libmp3lame採取MONO PCM數據和編碼單聲道mp3音頻?如果我沒有第二個頻道,什麼是正確的API?
謝謝你的迴應。所以我應該保持右邊的緩衝區爲空?我會嘗試的。但是,請你告訴我你是如何知道的? –
我不得不在跛腳的地方查看它;在這方面,Lame(in-header)文檔「不是很有幫助」。 –