2010-03-06 5 views
4

J'écris une application qui utilise AVAudioPlayers pour jouer des sons et j'ai besoin que les sons jouent au volume MAX absolu. Oui, vous pouvez définir le volume relatif d'un AVAudioPlayer, mais si le volume de l'appareil est désactivé, le son reste silencieux. Je sais qu'Apple dit que le volume de l'appareil ne peut pas être outrepassé, mais les applications Alarm Clock sont en mesure de le faire - il doit donc y avoir un moyen.Définir le volume de l'appareil sur l'iPhone

Je crois que cela peut être fait en utilisant Queues Audio en utilisant l'appel:

AudioQueueSetParameter(aq, kAudioQueueParam_Volume, 1.0); 

Mais mon code doit utiliser le AVAudioPlayer pour jouer les sons, donc je ne pense pas que cette approche sera d'aucune aide .

Il existe également un moyen d'utiliser une fonction non documentée de MPVolumeView pour ce faire, mais apparemment quelqu'un a déjà rejeté une application pour l'utilisation de cette méthode.

D'autres idées?

Répondre

0

je suis tombé sur ceci:

MPVolumeView *volumeView1 = [[MPVolumeView alloc] initWithFrame:CGRectMake(4, 316, sk.size.width, sk.size.height)]; 
[volumeView1 sizeToFit]; 
[self.view addSubview:volumeView1]; 
[volumeView1 release]; 

Je suis pas entièrement sûr si cela va fonctionner, mais je crois qu'il devrait. Il semble que vous pourriez avoir à modifier la hauteur et la largeur

+0

Merci, mais cela présentera simplement un contrôle curseur qui permettra à l'utilisateur d'ajuster le volume de l'appareil. J'ai juste besoin de le maximiser sans aucune implication de l'utilisateur. Je suppose que, en guise de solution de repli, je pourrais présenter le slider et un texte disant «Veuillez le faire glisser complètement vers la droite» - mais c'est vraiment ringard. – Bradley4040

+0

Pourquoi ne les avez-vous pas simplement régler le volume eux-mêmes, cela améliorera l'expérience de l'utilisateur –

+0

Je suis en train d'écrire une application de réveil et ils atteignent tous le volume de l'appareil. Si vous ne le faites pas, il est certain que vous obtiendrez des critiques comme "Cette application est nulle: l'alarme ne s'est pas déclenchée et j'ai raté mon test!". Le fait qu'ils aient fait baisser le volume ne fait pas partie de l'équation. – Bradley4040

6

The comment from the anonymous for this site:

float volume; 
[[MPMusicPlayerController applicationMusicPlayer] setVolume:volume]; 

ne fonctionne réellement.

+0

Cela fonctionne, mais il ne semble pas être le même que la plupart des applications le font. Sur iOS6 au moins, il apparaît le dialogue d'alerte de volume du système, ce qui n'est pas horrible mais n'est pas idéal – Jameo

Questions connexes