2010-10-27 13 views
6

Sono nelle prime fasi di sviluppo della mia prima applicazione per iPad, e per semplicità ho finora utilizzato AudioServicesPlaySystemSound e le funzioni associate per riprodurre suoni. Il mio codice è basato sulla classe SoundEffect dell'esempio Metronome di Apple.AudioServicesPlaySystemSound non funziona su dispositivo iPad

Il sintomo specifico è che riesco a sentire i suoni nel simulatore ma non sul dispositivo, anche se ho verificato che riesco a sentire i suoni in altre applicazioni sul dispositivo. AudioServicesCreateSystemSoundID restituisce identificatori audio validi, quindi non è nulla di semplice come il nome del file audio con case diverse, ad esempio "sound.mp3" e "Sound.mp3".

Riconosco che potrebbe essere necessario passare a una libreria diversa come OpenAL per motivi non correlati, ma mi piacerebbe sapere cosa sta succedendo qui. Qualcuno ha qualche suggerimento? C'è una funzione che posso chiamare per ottenere un valore OSStatus o qualcosa del genere?

* BUMP - Ho lavorato ad altri progetti nelle ultime settimane, ma ora sono tornato su questo punto e apprezzerei davvero una risposta. Grazie.

risposta

2

Non penso che sia possibile riprodurre un file mp3 sul dispositivo utilizzando AudioServicesPlaySystemSound. Dai uno sguardo allo documentation per i tipi di file supportati. Non sono sicuro del motivo per cui giocano correttamente nel simulatore, ma ho avuto lo stesso problema. Prova invece ad utilizzare AVAudioPlayer:

NSError *error; 
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource: @"sound" withExtension: @"mp3"] error:&error]; 
if (error) { 
    NSLog(@"Error creating audio player: %@", [error userInfo]); 
} else { 
    [audioPlayer play]; 
} 

[audioPlayer release]; 
5

Mi sono imbattuto in questa domanda tramite una ricerca su Google. Il mio problema è esattamente come indicato nel titolo di questa domanda: "AudioServicesPlaySystemSound non funziona sul dispositivo iPad". Tuttavia, la descrizione del problema è diversa.

In poche parole, dopo aver aggiornato il mio iPad a iOS 4.3, AudioServicesPlaySystemSound ha smesso di funzionare.

Ho finalmente trovato la soluzione alla mia versione del problema, quindi spero che questo aiuti qualcun altro.

Passare all'app Impostazioni sull'iPad e scegliere Generale. Tocca Suoni. Assicurati che "Cambia con pulsanti" sia impostato su ON. Questo risolverà il problema.

+0

Sto utilizzando iOS 4.3.1 e non ho l'opzione "Cambia con pulsanti" in Generale-> Suoni. – iPadDeveloper2011

+0

È passato un po 'di tempo da quando è successo, ma penso che possa valere solo per iPad 2. Potrebbe anche aver cambiato il comportamento in 4.3.1 - questa risposta si applica a 4.3. –

+0

Ho usato iTunes per cambiare il mio suono .m4v in un file .aif, che è una codifica "supportata". Ha funzionato. – iPadDeveloper2011

Problemi correlati