这里列出Android里将aac编码器输出的音频帧加上ADTS头的代码:

+ int tmpFd;

+ tmpFd = ::open("/data/src.aac", O_WRONLY | O_APPEND );

+ if ( tmpFd < 0 ) {

+    LOGE("No dump decode file %s",strerror(errno));

+ }

+ else

+ {

+    unsigned char adts_hdr[7] = {0xff, 0xf9, 0x5c, 0x80, 0x00,0x1f, 0xfc};

+

+    adts_hdr[3] = 0x80 | ((mConfig->inputBufferCurrentLength >> 11) & 3);

+    adts_hdr[4] = (mConfig->inputBufferCurrentLength >> 3) & 0xff;

+    adts_hdr[5] = ((mConfig->inputBufferCurrentLength & 7) << 5) | 0x1f;

+

+    ::write(tmpFd,adts_hdr, 7);

+    ::write(tmpFd,(const char *)mConfig->pInputBuffer , mConfig->inputBufferCurrentLength);

+    ::close(tmpFd);

+ }

AAC参考知识:

    (除协议外,非常详细的文章)

       (adts协议)

//aac header