Un son système ignore le niveau de volume
-
14-11-2019 - |
Question
Je travaille sur le jeu. Et j'ai un problème avec les sons.
J'utilise des sons du système pour reconnaître un joueur, lorsqu'il appuie sur un bouton. Ces sons respectent le volume défini par un joueur, lorsque d'autres sons jouent (j'utilise AVAudioPlayer
le sable AudioQueue
s). Mais lorsqu'un son système est uniquement à jouer, il ignore un volume défini par le joueur et joue à un volume de Ringer.
Comment forcer les sons du système à respecter un volume défini par un joueur même quand aucun autre sons n'est joué?
La solution
Comment vos joueurs (je suppose que vous voulez dire que les gens jouent au jeu) définissent le volume - via le contrôle du volume de l'appareil ou via l'interface de votre application? Si ce dernier, cela ne fonctionnera pas, car les sons du système doivent toujours jouer au volume de l'appareil.
Selon le Guide de programmation multimédia, "Les sons jouent au volume audio système actuel, sans contrôle de volume programmatique disponible."
Je ne sais pas pourquoi votre système de système changerait le volume lorsqu'un son Avaudioplayer joue. Si c'est le cas, pouvez-vous boucler un son silencieux avec Avaudioplayer lorsque vous ne jouez pas d'autres sons? Sinon, j'essaierais de jouer tous les sons avec Avaudioplayer afin d'avoir un contrôle direct sur le volume.
Autres conseils
En supposant que vous signifie que les joueurs définissent le volume à l'aide des boutons de volume latéral sur l'appareil:
J'ai eu le même problème pour que Systemsound respecte les boutons de volume, mais j'ai trouvé un paramètre dans "Paramètres" / "sons" / "Ringer and Alerts" / "Changer avec les boutons" qui était "OFF" par défaut. L'allée à "On" l'a fait fonctionner.