实时音频帧(AudioFrame)如何处理

新手上路,请多包涵

1.我从回调中得到一个音频信息的结构体,如下:
typedef struct {

char                  participantURI[MAX_URI_LEN];
unsigned int          sourceId;
unsigned int          viewPriority;
/*! Frame data */
AppAudioFrame frame;

} AppOutEventAudioFrameReceived;

typedef struct {

 /*! 分贝 - calculated energy in Db (-96..-1) */
signed int         energy;        
 /*! bit (typically 16) */
unsigned int       bps;          
/*! audio sampling-rate */
unsigned int       samplingRate; 
/*! 声道数量 (一般为1) */
unsigned int       channels;     
/*! number of samples (at 32Khz would be set to 640 for 20 ms) */
unsigned int       samples;      
/*! size of data is depth*nSamples*channels/8 */
unsigned char      data[1];   

} AppAudioFrame;

解释:
1.SDK将远程服务器多路音源分配到每个不同音频帧,根据participantURI可以获取到相对应的某路的音频帧.
2.利用缓存队列方式将audioFrame添加到队列中进行缓存.
3.从缓存区中获取audioFrame然后转成Data格式数据传能其他模块使用.

问题:
我认为我需要自定义队列和缓冲区来做这一处理过程.
我不需要播放功能,也没有URL,只有以上这个结构体.
缓冲区使我迷茫了,不知道如何入手.
请大神们支缓一下,可走淘宝.

阅读 4.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题