Voici le code:En utilisant le système audio pour lire des sons
-(void)stop
{
NSLog(@"Disposing Sounds");
AudioServicesDisposeSystemSoundID (soundID);
//AudioServicesRemoveSystemSoundCompletion (soundID);
}
static void completionCallback (SystemSoundID mySSID, void* myself) {
NSLog(@"completion Callback");
}
- (void) playall: (id) sender {
[self stop];
AudioServicesAddSystemSoundCompletion (soundID,NULL,NULL,
completionCallback,
(void*) self);
OSStatus err = kAudioServicesNoError;
NSString *aiffPath = [[NSBundle mainBundle] pathForResource:@"slide1" ofType:@"m4a"];
NSURL *aiffURL = [NSURL fileURLWithPath:aiffPath];
err = AudioServicesCreateSystemSoundID((CFURLRef) aiffURL, &soundID);
AudioServicesPlaySystemSound (soundID);
NSLog(@"Done Playing");
}
Sortie:
Disposing Sounds
Done Playing
En aucun son réel se joue du tout et appel d'achèvement est de retour pas appelé aussi. Une idée de ce qui pourrait être mauvais ici? Je souhaite arrêter le son précédent avant de lire le courant.
I err imprimé en utilisant NSLog et apears être (null) – Shoaibi
Voulez-vous dire (nul) ou zéro? Je pense que vous devez être un peu plus prudent avec votre NSLog ... (null) n'est pas un nombre entier ...;) –
je l'ai fait: NSLog (@ "Error:% @", err); donc je suppose que je suis l'impression de chaîne, et il me dit son "(null)" sur la console. – Shoaibi