2010-10-27 4 views
6

Je suis dans les premières étapes de développement de ma première application iPad, et pour simplifier, j'ai jusqu'ici utilisé AudioServicesPlaySystemSound et les fonctions associées pour jouer des sons. Mon code est basé sur la classe SoundEffect de l'exemple Metronome d'Apple.AudioServicesPlaySystemSound ne fonctionne pas sur le périphérique iPad

Le symptôme spécifique est que je peux entendre les sons dans le simulateur mais pas sur l'appareil, bien que j'ai vérifié que je peux entendre des sons dans d'autres applications sur l'appareil. AudioServicesCreateSystemSoundID renvoie des identifiants sonores valides, donc ce n'est pas aussi simple que le nom du fichier audio ayant un cas différent, c'est-à-dire "sound.mp3" et "Sound.mp3".

Je reconnais que je devrais peut-être passer à une bibliothèque différente comme OpenAL pour des raisons sans rapport, mais j'aimerais savoir ce qui se passe ici. Est-ce que quelqu'un a des suggestions? Y at-il une fonction que je peux appeler pour obtenir une valeur OSStatus ou quelque chose? BUMP - J'ai travaillé sur d'autres projets au cours des dernières semaines, mais je suis de retour sur ce sujet maintenant et j'apprécierais vraiment une réponse. Merci.

Répondre

2

Je ne pense pas que vous pouvez lire un fichier mp3 sur l'appareil en utilisant AudioServicesPlaySystemSound. Jetez un oeil à la documentation pour les types de fichiers pris en charge. Je ne sais pas pourquoi ils jouent correctement dans le simulateur, mais j'ai eu le même problème. Essayez d'utiliser AVAudioPlayer à la place:

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

Je suis tombé sur cette question via une recherche Google. Mon problème est exactement comme indiqué dans le titre de cette question: "AudioServicesPlaySystemSound ne fonctionne pas sur l'appareil iPad". Cependant, la description du problème est différente.

Simplement, après la mise à niveau de mon iPad vers iOS 4.3, AudioServicesPlaySystemSound a cessé de fonctionner.

J'ai finalement trouvé la solution à ma version du problème, donc j'espère que cela aidera quelqu'un d'autre.

Accédez à l'application Paramètres sur l'iPad et sélectionnez Général. Appuyez sur sons. Assurez-vous que "Change with Buttons" est réglé sur ON. Cela va résoudre le problème.

+0

Je suis sous iOS 4.3.1 et je n'ai pas d'option "Changer avec les boutons" dans Général-> Sons. – iPadDeveloper2011

+0

Cela fait un moment que cela s'est passé, mais je pense que cela ne peut s'appliquer qu'à l'iPad 2. Ils ont peut-être aussi changé le comportement en 4.3.1 - cette réponse s'applique à 4.3. –

+0

J'ai utilisé iTunes pour changer mon son .m4v en .aif, qui est un encodage "supporté". Ça a marché. – iPadDeveloper2011

Questions connexes