这
应该在Mac OS X上可以通过覆盖AudioStreamBasicDescription中的采样率然后创建一个新的输出队列来实现。
我已经能够检索默认采样率并写入一个新的采样率(即将 44100 替换为 48000),但这不会导致输出信号的任何音高变化。
err = AudioFileGetProperty(mAudioFile, kAudioFilePropertyDataFormat, &size, &mDataFormat);
if (err != noErr)
NSLog(@"Couldn't determine the audio file format");
Float64 mySampleRate = mDataFormat.mSampleRate; //the initial rate
if (inRate != 1) {
//write a new value
mDataFormat.mSampleRate = inRate;
//then
err = AudioQueueNewOutput etc.
任何建议将不胜感激。
更改采样率不会更改音频的音高。您可能会感觉到播放速度更快的内容具有更高的音调。然而,这是感知而不是现实。
要更改音高,您需要通过数字信号处理 (DSP) 库处理音频数据。或者,看看通过 AudioUnit 运行它:
音频单元编程指南