Macos 是否可以更改音频队列的播放音调

Macos 是否可以更改音频队列的播放音调,macos,pitch,audioqueue,sample-rate,Macos,Pitch,Audioqueue,Sample Rate,在Mac OS X上,通过覆盖AudioStreamBasicDescription中的采样率,然后创建一个新的输出队列,这应该是可能的 我已经能够检索默认采样率并编写一个新的采样率,即用48000替换44100,但这不会导致输出信号中的任何基音变化 err = AudioFileGetProperty(mAudioFile, kAudioFilePropertyDataFormat, &size, &mDataFormat); if (err != noErr)

在Mac OS X上,通过覆盖AudioStreamBasicDescription中的采样率,然后创建一个新的输出队列,这应该是可能的

我已经能够检索默认采样率并编写一个新的采样率,即用48000替换44100,但这不会导致输出信号中的任何基音变化

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运行它:

改变采样率确实会改变音频的音调。它同时改变音高和节奏。这不仅仅是感知。当然,你是对的,你可以单独改变音高,而不改变节奏。