audiounit在6s下录音不正常的问题
2015-11-11 16:17
218 查看
AudioStreamBasicDescription.mSampleRate = 8000不要变
关键是以下代码:
static OSStatus recordingCallback(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const
AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData) {
OSStatus status;
AudioBufferList bufferList; //此缓存一定要记得动态设置
UInt16 numSamples=inNumberFrames*1;
UInt16 samples[numSamples];
memset (&samples, 0, sizeof (samples));
bufferList.mNumberBuffers = 1;
bufferList.mBuffers[0].mData = samples;
bufferList.mBuffers[0].mNumberChannels = 1;
bufferList.mBuffers[0].mDataByteSize = numSamples*sizeof(UInt16);
status = AudioUnitRender([PAIOUnit sharedUnit].audioUnit,
ioActionFlags,
inTimeStamp,
inBusNumber,
inNumberFrames,
&bufferList);
}
关键是以下代码:
static OSStatus recordingCallback(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const
AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData) {
OSStatus status;
AudioBufferList bufferList; //此缓存一定要记得动态设置
UInt16 numSamples=inNumberFrames*1;
UInt16 samples[numSamples];
memset (&samples, 0, sizeof (samples));
bufferList.mNumberBuffers = 1;
bufferList.mBuffers[0].mData = samples;
bufferList.mBuffers[0].mNumberChannels = 1;
bufferList.mBuffers[0].mDataByteSize = numSamples*sizeof(UInt16);
status = AudioUnitRender([PAIOUnit sharedUnit].audioUnit,
ioActionFlags,
inTimeStamp,
inBusNumber,
inNumberFrames,
&bufferList);
}
相关文章推荐
- 多适配的小问题
- 内存泄露从入门到精通三部曲之排查方法篇(二)
- How Did Watson Answer? —— Special Questions
- 去掉div的滚动条的这个有用哦,CSS3滚动条-webkit-scrollbar简介~
- 计算
- chattr
- 即时通讯-没有那么可怕
- 一个简单的投票调查功能构建效果
- 内存泄露从入门到精通三部曲之基础知识篇(一)
- 网页优先选择模式
- Android利用Ksoap2调用Webservice时接收参数为空的问题
- POJ1177 Picture 线段树+离散化+扫描线
- MySQL基本操作(五)
- struct中dao连接数据库插入更新语句
- 图像识别和机器学习
- C# winForm webBrowser页面中js调用winForm类方法
- 记录好文章
- PHP - 数组
- SharePoint 2013 IT Professional--SharePoint Group
- jboss启动报org.jboss.security.auth.login.ParseException: Encountered "<?xml" at line 1, column 1. 异常