关键代码如下:
//防止采样频率加倍
NeAACDecConfigurationPtr conf = NeAACDecGetCurrentConfiguration(decoder);
conf->dontUpSampleImplicitSBR = 1;
NeAACDecSetConfiguration(decoder, conf);
//从双声道的数据中提取单通道
for(i=0,j=0; i<4096 && j<2048; i+=4, j+=2)
{
frame_mono[j]=pcm_data[i];
frame_mono[j+1]=pcm_data[i+1];
}
例子代码如下:
#include<stdio.h>
#include<unistd.h>#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<error.h>
#include"faad.h"
#define FRAME_MAX_LEN 1024*5
#define BUFFER_MAX_LEN 1024*1024
static char* file_buf;
static int file_size;
static int fd_input;
int open_file(char* file_input)
{