我需要以PCM格式8 KHz 16 Bit Mono实时发送音频数据。
音频必须像长度的字符数组一样发送 (< #char * data#>,< #int len#>)。
现在我是音频处理的初学者,不能真正理解如何实现这一目标。我最好的尝试是转换为iLBC格式并尝试但它无法工作。是否有任何示例如何录制和转换音频到任何格式。我已经阅读了Chris Adamson和Kevin Avila的学习核心音频,但我确实找不到有效的解决方案。
简单我需要的东西:
(适用记录) - >(?转换) - > send(char * data,int length);
Couse我需要发送像chars数组这样的数据我不能使用播放器。
编辑: 我设法使一切工作与录音和阅读缓冲。我无法管理的是:
if (ref[i]->mAudioDataByteSize != 0){
char * data = (char*)ref[i]->mAudioData;
sendData(mHandle, data, ref[i]->mAudioDataByteSize);
}
答案 0 :(得分:0)
这不是一个真正的初学者任务。解决方案是使用RemoteIO Audio Unit,Audio Queue API或AVAudioEngine installTapOnBus块。这些将为您提供接近实时(取决于缓冲区大小)的音频样本缓冲区(Int16' s或Floats等),您可以将它们转换,压缩,打包成其他数据类型或数组等。通常由调用您提供的回调函数或块,以便对传入的录制音频样本缓冲区执行任何操作。