再做音频数据发送时,遇到这样的情况
接口只接受10ms的数据量,不是10ms数据量的整数倍,接口调用不成功
因为一次获得的数据,有可能不满足发送条件,所以需要和后面的叠加,而发送成功后,有需要将发送出去的内存空间释放,同时保留剩余未发送出去的数据
方式1
一开始想用 new delete ,可是没有类似realloc这样重分配内存空间的函数,所以还是用malloc free 更好一点
增加数据 realloc
删除数据,memcopy剩余数据到新开辟内存,将新开辟空间作为音频数据指针
char* m_pSendAudioData; //内存空间地址
int m_nSendAudioLength; //内存空间大小
//lenth buf大小
//nNeedLength 10ms数据量
sendSelfAudoDataCallBack(const char* buf, int length, int nNeedLength, int sample)
{
if (m_pSendAudioData == NULL)
{
m_pSendAudioData = (char*)malloc(length);
memcpy(m_pSendAudioData, buf, length);
m_nSendAudioLength = length;
}
else{
//调整内存空间
m_pSendAudioData = (cha