vous pouvez jouer un son avec un pas modifié à l'aide AVAudioEngine, AVAudioPlayerNode.The exemple de code testé est donné ci-dessous.
@interface ViewController(){
AVAudioEngine *engine;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self playAudio];
}
-(void)playAudio{
engine = [[AVAudioEngine alloc] init];
NSString* path=[[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"];
NSURL *soundUrl = [NSURL fileURLWithPath:path];
AVAudioFile* File = [[AVAudioFile alloc] initForReading: soundUrl error: nil];
AVAudioPlayerNode* node = [AVAudioPlayerNode new];
[node stop];
[engine stop];
[engine reset];
[engine attachNode: node];
AVAudioUnitTimePitch* changeAudioUnitTime = [AVAudioUnitTimePitch new];
//change this rate variable to play fast or slow .
changeAudioUnitTime.rate = 1;
//change pitch variable to according your requirement.
changeAudioUnitTime.pitch = 100;
[engine attachNode: changeAudioUnitTime];
[engine connect:node to: changeAudioUnitTime format: nil];
[engine connect:changeAudioUnitTime to: engine.outputNode format:nil];
[node scheduleFile:File atTime: nil completionHandler: nil];
[engine startAndReturnError: nil];
[node play];
}
Faire variable chemin sûr avoir le chemin du fichier valide
Remarque :: ce code est testé sur l'appareil réel et fonctionne bien dans mon project.don't oublier d'ajouter CoreAudio.framework, AVFoundation.framework.
bonjour, madan dans votre question ce que cela signifie pitch? – CNSivakumar
@CNSivakumar: désolé pour clair, le pitch signifie changer le morceau pour d'autres caractères. –
@MadanMohan Monsieur, je suis dans le même problème. Avez-vous trouvé la solution? Pouvez-vous m'aider à y aller? – hyd00