ユーザーがオーディオを録音して、ピッチを変えて再生できるアプリケーションがあります。また、出力ボリューム パワーも測定する必要があります。avaudioplayer と cocos サウンド エンジンのメータリング プロパティについて知っています。しかし、これらを使用すると、自分のニーズを一緒に行うことができません。これら(ピッチシフトとレベルメータリング)を一緒に行うにはどうすればよいですか。誰でも私を助けることができますか?
編集
CDSoundEngine *soundEngine = [[CDSoundEngine alloc] init];
NSArray *defs = [NSArray arrayWithObjects: [NSNumber numberWithInt:1],nil];
[soundEngine defineSourceGroups:defs];
[soundEngine loadBuffer: 0 filePath: soundPath];
ALuint soundID= [soundEngine playSound: 0 sourceGroupId: 0 pitch: PITCH pan: 0.0f gain: 2.0f loop: NO];
これは私が現在使用しているコードですが、正常に動作しますが、出力電力を測定できません。AVAudioPlayer の場合、meteringenabled プロパティがあります。
[プレーヤー setMeteringEnabled:YES];
そして、私たちは力を取り戻すことができます
[player updateMeters];
Float32 peak=[player peakPowerForChannel:0];
しかし、AVAudioPlayerでピッチを変更することはできません
これは私の問題です