Une question très commune, mais je ne peux pas comprendre ce que je fais mal à jouer un fichier audio simple dans iOS 10 et 9. J'ai le code suivant:Jouer un simple fichier audio dans iOS
#import <AudioToolbox/AudioToolbox.h>
#import <AVFoundation/AVFoundation.h>
NSString *soundFilePath = [NSString stringWithFormat:@"%@",[[NSBundle mainBundle] pathForResource:@"www/sounds/ringbacktone" ofType:@"mp3"]];
[self playTone:soundFilePath Loop:YES];
-(void) playTone:(NSString *) soundFilePath Loop:(BOOL) loop{
NSLog(@"Sound File Path: %@",soundFilePath);
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:soundFilePath]){
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
NSError *error = nil;
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:&error];
if (error){
NSLog(@"Error creating the audio player: %@",error);
}else{
if (loop == YES)
player.numberOfLoops = -1; //Infinite
[player setVolume:1.0];
[player play];
}
}else{
NSLog(@"No sound will be played. The file doesn't exist.");
}
}
la sortie est
Sound File Path: /var/containers/Bundle/Application/E8CCA88C-B6AB-4C36-9426-EFBB94E1D509/myapp.app/www/sounds/myfile.mp3
le fichier existe pour que le son doit jouer. J'ai essayé les fichiers wav, m4a et mp3 sans succès. J'utilise la fonction avant d'appeler la bibliothèque pjsip. Je ne sais pas si cela joue un rôle.
Des pensées? Y a-t-il un autre moyen de le déboguer davantage?
Êtes-vous activé la session audio? Quelle catégorie utilisez-vous? –
AVAudioSessionCategoryPlayAndRecord –