2011-10-15 15 views
15

Le mie app in esecuzione sull'appstore sono utilizzando file mp3 e video che non funzionano da quando iOS5 aggiorna.AVFoundation iOS 5

Ho installato Xcode 4.2 e ... quando prova nel dispositivo iPhone 5 Simulator o ottengo il seguente errore (per i file audio o video):

Error loading 
System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn: 
dlopen(/System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn, 262): 
Symbol not found: ___CFObjCIsCollectable 
Referenced from: /System/Library/Frameworks/Security.framework/Versions/A/Security 
Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 
in /System/Library/Frameworks/Security.framework/Versions/A/Security 

Quando provo questo nel iPhone 4.3 simulatore o dispositivo che non va in crash ..

Ho pulito e reimportato le strutture coinvolte, ma sembra essere il tipo di errore

Nota: le mie app non utilizzano alcuna sicurezza.

Potrebbe essere d'aiuto?

risposta

1

ho trovato la soluzione: invece di NSURLNSString:

NSURL *chemin = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/MySound.wav", [[NSBundle mainBundle] resourcePath]]]; 
NSError *error; 
AVAudioPlayer* mySound = [[AVAudioPlayer alloc] initWithContentsOfURL:chemin error:&error]; 
mySound.delegate = self; 
[chemin release]; 
[mySound Play]; 
+0

ancora a sinistra con lo stesso problema per me ... –

0

ho avuto lo stesso errore, ma il mio codice non era diversa dalla vostra. Io non in realtà ho bisogno di nulla nel framework Security, ma l'aggiunta di quel framework al mio progetto ha risolto questo problema.

+0

No, ancora niente. –

9

Ho appena trovato una risposta here.

Se l'app si arresta in modo anomalo qui, disabilitare Tutte le eccezioni nella scheda Punti di interruzione XCode 4. Forse è un bug dell'SDK.

+0

Questo ha risolto il problema per me, grazie. – aslisabanci

+0

Grazie mille. Ha funzionato anche per me. Qualcuno sa perché questo è il caso? – Dash

4

Cerca di rendere il tuo lettore una proprietà mantenuta. Ho sperimentato lo stesso e, poiché ho dichiarato il mio giocatore a livello locale, ritengo che ARC abbia mantenuto il metodo con cui ho dichiarato che il giocatore ha esaurito lo scope.

Giocatore fare una proprietà mantenuto

@property (strong)AVAudioPlayer *player; 

ricordarsi di impostare il delegato (self.player.delegate = sé) e usare i metodi del delegato per ripulire:

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)playedSuccessfully { 
    self.player = nil; 
} 
+0

SÌ! Grazie! Che ha fatto per me. –