2011-07-28 1 views
2

Au sein de mon application, je joue un fichier audio téléchargé à l'aide d'un AVAudioPlayer, tout en lisant simultanément le son de la bibliothèque musicale de l'iPod de l'utilisateur avec un MPMusicPlayerController.Contrôle du volume indépendant de AVAudioPlayer et MPMusicPlayerController dans l'application iOS.

Je dois être en mesure d'ajuster le volume de l'instance de AVAudioPlayer afin qu'il soit plus fort que l'audio provenant du MPMusicPlayerController ( ).

Le problème est que lorsque j'ajuste la propriété Volume de AVAudioPlayer, ajuste le volume du MPMusicPlayerController.

Y at-il une solution qui me permettrait de contrôler indépendamment le volume de ces deux joueurs?

Sinon, y a-t-il une autre technique que je devrais utiliser pour faire ceci? Toute aide est appréciée.

+2

2 autres questions demandant exactement la même chose: [Est-il possible d'utiliser différents niveaux de volume pour différents lecteurs (AVAudio Player et MPMusicPlayer) pendant qu'ils jouent simultanément?] (Http://stackoverflow.com/q/6409278/ 635451) et [Paramètres de volume différents pour différents lecteurs] (http://stackoverflow.com/q/6409940/635451). Pas de réponses à tout, cependant. – MiguelB

+0

Connexe: [Volume de musique iPod fond mélangé avec des effets sonores] (http://stackoverflow.com/questions/8071923/background-ipod-music-volume-mixed-with-sound-effects/8075505) – bobobobo

Répondre

6

Consultez la documentation de AVAudioSession. Par exemple, dans le AVAudioSession Programming Guide, dit ce qui suit:.

« Enfin, vous pouvez améliorer une catégorie pour diminuer automatiquement le volume d'autres audio lorsque votre audio est en cours de lecture Cela pourrait être utilisé, par exemple, dans une application d'exercice Supposons que l'utilisateur s'exerce sur son iPod lorsque votre application souhaite superposer un message verbal, par exemple, «Vous avez ramé pendant 10 minutes». Pour vous assurer que le message de votre application est intelligible, appliquez la propriété kAudioSessionProperty_OtherMixableAudioShouldDuck à Lors de l'esquive, tous les autres sons de l'appareil (à l'exception de l'audio du téléphone) diminuent en volume.

Je pense que cela pourrait résoudre votre problème. La documentation sur l'initialisation d'une AVAudioSession et la définition de ses catégories et propriétés est assez claire et facile à suivre; tu ne devrais pas avoir de problèmes.

Questions connexes