OS10.6下的音频队列服务文档现在包括一个音调参数:
kAudioQueueParam_Pitch的音高转换数,在2400到2400美分之间( 1200美分对应于一个音乐八度)。只有在启用时间/间距处理器时,此参数才能使用。
同一文档的其他部分仍然说卷是唯一可用的参数,我找不到对上面提到的时间/音调处理器的任何引用。
有人知道这是指什么吗?直接向参数写入值对回放没有影响(尽管没有抛出错误)。类似地,编写卷设置也是有效的。
像往常一样令人沮丧,没有苹果的支持。
发布于 2013-08-23 20:36:56
这只能在OSX上使用,直到iOS 7。如果你看一下AudioQueue.h,你会发现它只在iOS 7上有条件地可用。注意:在重新阅读时,我看到你指的是OSX,而不是iOS,但希望下面是跨平台的
另外,在设置time_pitch算法之前,需要为time_pitch启用队列,而且只有谱算法支持基音(它们都支持速率)。
result = AudioQueueNewOutput(&(pAqData->mDataFormat), aqHandleOutputBuffer, pAqData,
0, kCFRunLoopCommonModes , 0, &(pAqData->mQueue));
// enable time_pitch
UInt32 trueValue = 1;
AudioQueueSetProperty(pAqData->mQueue, kAudioQueueProperty_EnableTimePitch, &trueValue, sizeof(trueValue));
UInt32 timePitchAlgorithm = kAudioQueueTimePitchAlgorithm_Spectral; // supports rate and pitch
AudioQueueSetProperty(pAqData->mQueue, kAudioQueueProperty_TimePitchAlgorithm, &timePitchAlgorithm, sizeof(timePitchAlgorithm));https://stackoverflow.com/questions/6215061
复制相似问题