J'essaie de jouer un audio à travers le haut-parleur de l'écouteur et ça fonctionne bien. Le même code ne fonctionne pas dans la situation suivante.
Voici mon code pour jouer de l'audio à travers l'écouteur.
-(void)initialAVaudioPlayer { if (player==nil) { NSError *error = nil; AVAudioSession *session = [AVAudioSession sharedInstance]; [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&error]; [session setActive: YES error:nil]; AVAudioSessionPortDescription *routePort = session.currentRoute.outputs.firstObject; NSSsortingng *portType = routePort.portType; if ([portType isEqualToSsortingng:@"Receiver"]) { [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error]; } else { [session overrideOutputAudioPort:AVAudioSessionPortOverrideNone error:&error]; } NSSsortingng *path; NSError *err; NSSsortingng *name; name = @"referenceaudio"; path = [[NSBundle mainBundle] pathForResource:name ofType:@"wav"]; if ([[NSFileManager defaultManager]fileExistsAtPath:path]) { NSURL *url = [NSURL fileURLWithPath:path]; player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&err]; if (!err) { player.numberOfLoops = -1; } else{ //NSLog(@"%@",[err description]); } } } }
Voici le code, tandis que l'user appuie sur annuler,
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { NSLog(@"here"); [self dismissViewControllerAnimated:YES completion:nil]; }
Changer la route audio pour annuler le button résoudre le problème
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { NSError *error = nil; AVAudioSession *session = [AVAudioSession sharedInstance]; [session setCategory:AVAudioSessionCategoryPlayback error:&error]; [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:nil]; [session setActive: YES error:nil]; videoPicker = nil; [self dismissViewControllerAnimated:YES completion:nil]; }