Iphone AUGraph variSpeed没有';在iOS 5.x上不接受StreamFormat

Iphone AUGraph variSpeed没有';在iOS 5.x上不接受StreamFormat,iphone,ios,objective-c,audio,core-audio,Iphone,Ios,Objective C,Audio,Core Audio,我有一个使用此设置播放和录制音频的曲线图: RemoteIO -> -> RemoteIO Mulichannel Mixer -> variSpeed Read Callback -> -> Write Callback 我的问题是kAudioUnitSubType_Varispeed不接

我有一个使用此设置播放和录制音频的曲线图:

RemoteIO      ->                                 -> RemoteIO
                  Mulichannel Mixer -> variSpeed 
Read Callback ->                                 -> Write Callback
我的问题是kAudioUnitSubType_Varispeed不接受iOS 5.x上的StreamFormat。在iOS 6上,它工作正常。没有正确的StreamFormat,AUGraph无法运行

我在所有输入和输出上设置了相同的StreamFormat:

    memset(&_audioFormat, 0, sizeof(_audioFormat));
UInt32 propertySize = sizeof(AudioStreamBasicDescription);
CheckError(AudioUnitGetProperty(self.io, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &_audioFormat, &propertySize), "Couldn't get audio Format for io input");
_audioFormat.mChannelsPerFrame  = 1;
_audioFormat.mSampleRate = self.hardwareSampleRate;

// set audio Format for io
CheckError(AudioUnitSetProperty(self.io, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, kInputBus, &_audioFormat, sizeof(_audioFormat)), "Couldn't set audio Format for output");
CheckError(AudioUnitSetProperty(self.io, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, kOutputBus, &_audioFormat, sizeof(_audioFormat)), "Couldn't set audio Format for input");

// set audio Format for mixer
CheckError(AudioUnitSetProperty(self.mixer, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &_audioFormat, sizeof(_audioFormat)), "Couldn't set audio Format for mixer 0");
CheckError(AudioUnitSetProperty(self.mixer, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 1, &_audioFormat, sizeof(_audioFormat)), "Couldn't set audio Format for mixer 1");
CheckError(AudioUnitSetProperty(self.mixer, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, kOutputBus, &_audioFormat, sizeof(_audioFormat)), "Couldn't set audio Format for mixer output");

// set audio Format for speed
CheckError(AudioUnitSetProperty(self.speed, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, &_audioFormat, sizeof(_audioFormat)), "Couldn't set audio Format for speed input");
CheckError(AudioUnitSetProperty(self.speed, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, 0, &_audioFormat, sizeof(_audioFormat)), "Couldn't set audio Format for speed output");
iOS 5.x上的现金流:

    AudioUnitGraph 0x6CC000:
  Member Nodes:
    node 1: 'auou' 'rioc' 'appl', instance 0x18cc2a0 O I
    node 2: 'aumx' 'mcmx' 'appl', instance 0x455680 O I
    node 3: 'aufc' 'vari' 'appl', instance 0x450270 O I
  Connections:
    node   1 bus   1 => node   2 bus   1  [ 1 ch,  22000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
    node   2 bus   0 => node   3 bus   0  [ 2 ch,  44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
    node   3 bus   0 => node   1 bus   0  [ 1 ch,  22000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
  Input Callbacks:
    {0x53b5d, 0x454cd0} => node   2 bus   0  [1 ch, 22000 Hz]
  CurrentState:
    mLastUpdateError=0, eventsToProcess=F, isRunning=F
iOS 6.x上的现金流:

    AudioUnitGraph 0x388000:
  Member Nodes:
    node 1: 'auou' 'rioc' 'appl', instance 0x1f03b1e0 O I
    node 2: 'aumx' 'mcmx' 'appl', instance 0x1f05fd60 O I
    node 3: 'aufc' 'vari' 'appl', instance 0x1e590b90 O I
  Connections:
    node   1 bus   1 => node   2 bus   1  [ 1 ch,  22000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
    node   2 bus   0 => node   3 bus   0  [ 1 ch,  22000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
    node   3 bus   0 => node   1 bus   0  [ 1 ch,  22000 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
  Input Callbacks:
    {0xe9b5d, 0x1e58e4e0} => node   2 bus   0  [1 ch, 22000 Hz]
  CurrentState:
    mLastUpdateError=0, eventsToProcess=F, isRunning=F
为什么速度节点不接受iOS 5.x上的StreamFormat:(? 有人能帮我吗?
谢谢。

看起来一个很好的开始是取消5.x上的采样率转换。在该图中,您的varispeed接收44100 Hz音频并输出22000 Hz音频。这可能不是它实际能够做到的。请尝试将varispeed的输入设置为22000 Hz。self.hardwareSampleRate设置为22000 Hz。。。