2010-04-27 5 views

Répondre

15

Si vous êtes dans le simulateur, assurez-vous que dans Préférences système → Son, "Lecture des effets sonores de l'interface utilisateur" n'est pas désactivé. Si vous êtes sur l'appareil, vérifiez que l'interrupteur de sonnerie n'est pas réglé sur silencieux.

+0

Je ne trouve aucune "Préférences Système". Sont-ils dans l'appareil simulé ou dans l'application du simulateur? –

+0

Je veux dire sur Mac OS X, dans les Préférences Système de votre ordinateur. – lucius

+0

Je n'aurais jamais pensé à ça - merci! –

2

Préférences système → Son → [x] Lecture du son de l'interface utilisateur - cette case à cocher m'a également aidé, elle a résolu le problème AudioServicesPlaySystemSound (_). Mais à noter que l'exemple de projet Apple Xcode "SysSound" a très bien fonctionné sans cocher cette case. J'utilise le Xcode 4.4.1 pour créer sa propre application à partir de zéro. Peut-il y avoir des différences entre les projets créés avec des outils Xcode plus anciens et plus récents?

+0

L'exemple SysSound fonctionne pour le bouton AudioServicesPlayAlertSound mais pas pour le bouton AudioServicesPlaySystemSound. Même si c'est le même son. – samkass

+0

@samkass vous avez raison – Jacky

5

Peut-être que c'est le problème this? AudioServicesDisposeSystemSoundID() va arrêter le son avant de jouer.

0

Sur l'appareil, allez dans les paramètres et augmenter le volume sur sons-> Sonnerie et alertes

2

Miser sur la réponse de user1056521, utilisez le code suivant:

AudioServicesPlaySystemSoundWithCompletion(soundID, ^{ 
    AudioServicesDisposeSystemSoundID(soundID); 
}); 

soundID est la valeur SystemSoundID vous avez quand vous avez appelé AudioServicesCreateSystemSoundID().

Le bloc d'achèvement assure que le son a été lu et terminé avant d'être mis au rebut.

Questions connexes