2012-01-31 4 views
3

Pour ne pas avoir de ventilation, je suis curieux de savoir ce que les gens utilisent ici (code d'extraits de code) pour jouer des effets audio courts et petits dans leurs applications? Maintenant que je travaille sur un projet strictement sous iOS 5 ARC, ma méthode précédente est interdite et génère des erreurs.Lecture de l'effet audio court

Alors, comment peut-on simplement jouer un petit fichier audio d'une seconde dans son application avec iOS 5 et Objective-C?

Merci à tous ceux qui contribuent positivement!

EDIT: Voici le code qui envoie des erreurs avec ARC et iOS 5

NSString *soundPath=[[NSBundle mainBundle] pathForResource:@"swoosh" ofType:@"caf"]; 
    SystemSoundID sound; 
    AudioServicesCreateSystemSoundID((__bridge_retained CFURLRef)[NSURL fileURLWithPath:soundPath],&sound); 
    AudioServicesPlaySystemSound(sound); 
+0

Code pour votre méthode précédente, s'il vous plaît! – ZhangChn

+0

NSString * soundPath = [[NSBundle mainBundle] pathForResource: @ "swoosh" deType: @ "caf"]; Son SystemSoundID; AudioServicesCreateSystemSoundID ((__ pont_retained CFURLRef) [NSURL fileURLWithPath: chemin_son], & son); AudioServicesPlaySystemSound (son); – Brayden

Répondre

2

Essayez de changer __bridge_retained juste __bridge et le message ARC devrait disparaître. Je crois AVAudioPlayer est de niveau supérieur et a une plus grande empreinte de mémoire afin de jouer des sons courts, il peut être laggy et utiliser plus de mémoire que nécessaire. Voir Multimedia Programming Guide: using Audio

1

C'est extrait de code J'utilise:

//alarm sound 
self.alarmSoundPlayer = [[AVAudioPlayer alloc] 
    initWithContentsOfURL:[[NSBundle mainBundle] 
           URLForResource:@"alarm" 
           withExtension:@"caf"] 
        error:0]; 

... 

[alarmSoundPlayer play];