Je suis en train de travailler sur une application iOS qui a besoin de jouer des sons à l'aide de l' AVFoundation
- cadre. L'espace de travail de la structure dans Xcode 4 contient deux projets:
- Espace de travail
- L'application elle-même (projet principal)
- Un utilitaire de bibliothèque
Après la construction de l'installation de la bibliothèque, il en résulte une bibliothèque statique qui est utilisé dans l'application principale en tant que cadre.
Donc, lorsque vous essayez de jouer un son à l'intérieur de l'application principale en utilisant le code ci-dessous, il fonctionne comme prévu.
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSString *path = [NSString stringWithFormat:@"%@/sound.mp3", resourcePath];
NSURL *url = [NSURL fileURLWithPath:path];
NSError *error = nil;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url
error:&error];
[audioPlayer play];
En revanche, lorsque essayant de jouer exactement le même son (ou autre) à l'intérieur de l'utilité de la bibliothèque en utilisant le même code que ci-dessus, aucun son n'est joué, même si l'erreur est nulle et l' audioPlayer les valeurs de propriété sont celles de droite (nombre de canaux, la durée).
J'ai fait en sorte que le AVFoundation
cadre de deux projets.
Aussi, ma classe utilise l' AVAudioPlayerDelegate
protocole et met en œuvre ces deux méthodes:
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag;
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error;
Aucune de ces méthodes est appelée après avoir essayé de jouer le son.
Si j'utilise l' AudioToolbox
- cadre au lieu de cela, alors qu'il joue le son. Mais je suis intéressé par l'utilisation AVFoundation
, pour plusieurs raisons.
Toute idée de ce qui se passe? Ai-je raté quelque chose à propos de AVFoundation
? Il pourrait être relié à l'aide d' AVAudioPlayer
depuis l'intérieur d'une bibliothèque statique?
Merci à l'avance.