2009-01-06 5 views
4

J'ai donc une application qui joue de nombreux clips sonores courts. J'ai besoin de savoir quand les sons ont fini de jouer, et j'ai besoin d'utiliser des mp3, donc j'utilise AVFoundation pour la lecture du son.iPhone (SDK 2.2): régler le volume de la lecture sans jouer activement de la musique avec AVFoundation?

Lorsqu'un son est en cours de lecture et que l'utilisateur utilise les boutons de volume matériel, le volume de lecture change. Le problème est, l'application ne joue PAS constamment des sons, et quand ce n'est pas le cas, et les boutons matériels sont utilisés, le volume de RINGER est ajusté à la place.

Comment puis-je le configurer, tant que l'application est en cours d'exécution, l'utilisateur peut ajuster le volume de lecture?

Merci! Donc, vous voulez désactiver le volume de lecture de la sonnerie tant que l'application est en cours d'exécution?

Répondre

5

Transforme ce peut être accompli en allouant un AVAudioPlayer avec un fichier son valide et appeler la méthode prepareToPlay, sans jamais appeler la méthode play.

Fonctionne parfaitement.

+0

Je pense que cette solution est meilleure que celle que vous avez acceptée – hhafez

+0

Oui, j'utilise cette méthode. Cela fonctionne très bien. –

+0

Raviver un ancien thread. Mais si je fais cela, aucun de mes fichiers audio ne joue après ça! J'ai 20 fichiers et j'utilise un objet AVAudioPlayer commun pour les lire lors de la sélection de l'utilisateur. Sur viewDidLoad, j'ai instancié l'objet player avec un fichier son et appelé prepareToPlay. Mais après cela si j'instancie l'objet joueur avec n'importe quel fichier et appelez le jeu, aucun son ne joue! Peux-tu aider s'il te plait. – lostInTransit

1

par conséquent, les commandes du matériel ajusteront uniquement les sons de lecture de l'application?

Je ne pense pas que ce soit possible à moins que vous ne soyez "toujours en train de jouer du son" par exemple, de nombreux jeux jouent toujours de la musique de fond ou quoi d'autre.

Questions connexes