0
A
回答
0
是,其可能的,你需要设置配置AudioQueue因此,
基本上AudioQueue缓冲区大小,具有40ms的进行设置,因此这将是左右,
int AQRecorder::ComputeRecordBufferSize(const AudioStreamBasicDescription *format, float seconds)
{
int packets, frames, bytes = 0;
try {
frames = (int)ceil(seconds * format->mSampleRate);
if (format->mBytesPerFrame > 0)
bytes = frames * format->mBytesPerFrame;
else {
UInt32 maxPacketSize;
if (format->mBytesPerPacket > 0)
maxPacketSize = format->mBytesPerPacket; // constant packet size
else {
UInt32 propertySize = sizeof(maxPacketSize);
XThrowIfError(AudioQueueGetProperty(mQueue, kAudioQueueProperty_MaximumOutputPacketSize, &maxPacketSize,
&propertySize), "couldn't get queue's maximum output packet size");
}
if (format->mFramesPerPacket > 0)
packets = frames/format->mFramesPerPacket;
else
packets = frames; // worst-case scenario: 1 frame in a packet
if (packets == 0) // sanity check
packets = 1;
bytes = packets * maxPacketSize;
}
} catch (CAXException e) {
char buf[256];
return 0;
}
return bytes;
}
,并设置格式,
void AQRecorder::SetupAudioFormat(UInt32 inFormatID)
{
AudioStreamBasicDescription sRecordFormat;
FillOutASBDForLPCM (sRecordFormat,
SAMPLING_RATE,
1,
8*BYTES_PER_PACKET,
8*BYTES_PER_PACKET,
false,
false
);
memset(&mRecordFormat, 0, sizeof(mRecordFormat));
mRecordFormat.SetFrom(sRecordFormat);
}
我的情况,这些宏的值,
#define SAMPLING_RATE 16000
#define kNumberRecordBuffers 3
#define BYTES_PER_PACKET 2
相关问题
- 1. 音频处理 - 音频识别
- 2. 录制音频中的音频处理
- 3. 用于Mac上多通道实时音频处理的音频队列
- 4. Android音频处理?
- 5. 音频队列和EXC_BAD_ACCESS
- 6. Android - 我可以从音频混音器获取音频数据以播放吗?
- 7. 音频节目,声音处理和DSP
- 8. 音频处理:使用音量级别
- 9. 将音频与音频队列服务同步的建议?
- 10. 如何将iPod库资源连接到音频队列服务并使用音频单元进行处理?
- 11. Matlab的音频处理
- 12. kivy中的音频处理
- 13. Ruby的音频处理库?
- 14. iPhone中的音频处理
- 15. 处理音频中断AVAudioPlayer
- 16. 独立处理音频和视频
- 17. 音频挂钩或自定义音频驱动程序音频处理和路由到默认音频设备
- 18. 音频信号处理 - 从音频检索信息
- 19. 如何处理音频视频html5中不存在的音源?
- 20. FFmpeg - 连接音频 - 视频?
- 21. 音频/语音可视化
- 22. 音频队列服务 - 录制
- 23. 音频队列缓冲区空错误
- 24. iOS 5上的音频输出队列
- 25. 音频队列启动失败
- 26. 可以从MPMusicPlayerController播放音频会话/应用音频单元吗?
- 27. HTML音频元素可以播放错误的音频格式
- 28. 识别后可以打开一个音频声音文件吗?
- 29. 静音音频
- 30. Sony SmartEyeglass可以执行实时视频和音频流吗?
嗨罗汉, 感谢您的答复, 我已经相应改变的项目,它的工作在我结束。由于我是这个领域的新手,我如何确保它在每个数据包40毫秒音频帧的工作? 感谢,Pravin – Pravin 2013-02-28 10:01:03
AudioQueue框架,当入列的缓冲区被填满时抛出一个回调,所以最小的间隔时间肯定是40ms ... – Amitg2k12 2013-03-01 16:03:54
感谢Rohan,你能给我一个想法(公式)每个数据包40ms音频帧计算关于宏/定义即SAMPLING_RATE,kNumberRecordBuffers,BYTES_PER_PACKET – Pravin 2013-03-13 11:30:12