0
我試圖獲取/設置子類型爲kAudioUnitSubType_NewTimePitch
的AudioUnit的速率。AudioUnit子類型上的設置速率kAudioUnitSubType_NewTimePitch
音頻單元被添加到AUGraph
,通過AUNode
,其具有以下組分的描述:
acd->componentType = kAudioUnitType_Effect;
acd->componentSubType = kAudioUnitSubType_NewTimePitch;
acd->componentManufacturer = kAudioUnitManufacturer_Apple;
根據AudioUnitParameters.h
,獲取/設置的速率應儘可能得簡單/設置的速率音頻單元上的參數。
// rate control.
// Global, rate, 1/32 -> 32.0, 1.0
kNewTimePitchParam_Rate = 0,
然而,當該值設置似乎得到的值沒有問題(不返回錯誤)產生一個OSStatus
值爲-10878 (kAudioUnitErr_InvalidParameter)
。
這裏是我設置的值:
- (void)setTempo:(float)value {
OSStatus err = noErr;
err = AudioUnitSetParameter(tempoUnit, kNewTimePitchParam_Rate, kAudioUnitScope_Global, 0, (Float32)value, 0);
if (err != noErr) {
NSLog(@"Could not set tempo unit rate: %d", err);
} // no error
}
,以及如何我(試圖)得到它:
- (float)tempo {
OSStatus err = noErr;
Float32 value = 1.0;
err = AudioUnitGetParameter(tempoUnit, kNewTimePitchParam_Rate, kAudioUnitScope_Global, 0, &value);
if (err != noErr) { // -10878
NSLog(@"Could not get tempo unit rate: %d", err);
}
return value;
}
節點的輸入連接到調音臺節點,輸出到RemoteIO單元。
任何想法?
我會將此答案標記爲正確,但歡迎評論和回答:) – Vince