【发布时间】:2016-10-03 12:54:37
【问题描述】:
查看libmp3lame的API,所有功能:
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?
【问题讨论】: