Così, ho avuto questo problema troppo - Beh, io sono abbastanza sicuro che sia lo stesso ...
Abbiamo avuto un app in App Store per un anno o giù di lì ora e di recente abbiamo avuto bisogno di cambia un po 'di contenuto anche se nulla di funzionale.
Improvvisamente, il suono ha smesso di funzionare - Sia il simulatore nella sua ultima versione SDK (versione 4.0) e sul dispositivo di troppo (ancora una volta con iOS 4).
Il codice che ha sempre lavorato per noi era questo ...
NSString *sound_file;
if ((sound_file = [[NSBundle mainBundle] pathForResource:@"track1" ofType:@"mp3"])){
NSURL *url = [[NSURL alloc] initFileURLWithPath:sound_file];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];
audioPlayer.delegate = self;
[url release];
[audioPlayer prepareToPlay];
[audioPlayer play];
}
Infine, ho scoperto che è ora necessario impostare il tipo di riproduzione AVAudioSession solo per ottenere suono da riprodurre attraverso l'altoparlante come già fatto! Mettere seguente riga di codice nella vostra applicazione gestore di eventi delegato applicationDidFinishLaunching ...
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
Senza dimenticare di aggiungere il includere nella vostra app delegato .h di file (ovviamente è necessario importare quadro AVFoundation anche se non già fatto) ...
#import <AVFoundation/AVAudioSession.h>
Speriamo che questo consenta di riprodurre l'audio sul dispositivo.
non ottengono cuaght da quello che penso potrebbe essere una questione a parte, e che è il suono ancora non gioca nel simulatore. Ho visto altri post che suggeriscono questo, ma non sono sicuro di quanto sia diffuso. Ho scoperto che se avessi selezionato iPad 3.2 come mio simulatore, almeno ci avrebbe lavorato. La gioia!
Quello che mi sembra pazzesco è che, sicuramente, questo deve comportare un sacco di persone e tuttavia è piuttosto difficile trovare informazioni o suggerimenti su qualcosa che dovrebbe essere un problema abbastanza noto - dopo tutto, ho visto un sacco di post su forum a cui non sembra sia stata data risposta.
Anywayz, spero che questo aiuti qualcun altro.
wow questo 1 ha funzionato per me, stavo affrontando lo stesso problema, grazie @ Jon Andrews! – Dhawal
Il codice '[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];' semplicemente sovrascrive lo switch silenzioso e consente di riprodurre i suoni quando il telefono è bloccato AFAIK. – evilgoldfish
Finalmente! Ci è voluta un'ora di googling, conversione, importazione, prova e questo ha funzionato alla fine. Molte grazie! – karpathy