2009-12-28 6 views
0

J'essaye d'obtenir un UISlider pour synchroniser avec le rocker de volume. J'ai réussi à utiliser le curseur pour changer le volume du système/de la sonnerie, mais j'ai besoin que le curseur bouge lorsque la bascule bouge. des suggestions sur la façon d'obtenir la valeur de volume actuelle? J'utilise le code ci-dessous pour monnitor le changement de volume:Sync Volume rocker avec un UISlider

- (void)volumeChanged:(NSNotification *)notification{ 

     AVSystemController* avc = SharedAVSystemController; 
     // my sliders name is customVolume, and this is how I 
     // am trying to get the volume: 
     customVolume.value = [avc getVolume:(float *) forCategory:(id)]; 

} 

En outre, quelles sont les catégories AVSystemController autres que « Ringtone »?

+0

Comment avez-vous le AVSystemController (ou autre) pour contrôler le volume système/sonnerie? Je regarde comment faire moi-même maintenant. [how-to-disable-system-sounds] (http://stackoverflow.com/questions/6284402/how-to-disable-ios-system-sounds/) – Sam

Répondre

0

Cela mettra à jour le UISlider avec la bascule du volume:

- (void)volumeChanged:(NSNotification *)notification 
{ 
    AVSystemController *avs = [ notification object ]; 
    NSString *audioDeviceName; 
    [ avs getActiveCategoryVolume:&_volume andName:&audioDeviceName ]; 
} 
2

Il existe une classe disponible dans le SDK qui gère le volume système tout seul, MPVolumeView. Ce n'est pas une sous-classe de UISlider donc vous ne pouvez pas changer son apparence (Eh bien, ce serait difficile de le pirater ensemble tout seul) mais ce n'est probablement pas un problème. (edit: regardant class dumps, la vue contient une vue UISlider normale il peut être plus facile que prévu)

Je ne sais pas si elle gère tout ce dont vous avez besoin et si elle est adaptée à votre contexte, mais vous pouvez également y jeter un coup d'œil et l'essayer.

+0

Je viens de répondre à ma propre question, en second lieu, je ne vais pas d'utiliser le MPVolumeView comme je suis intéressé à chaging le volume du système, pas seulement les volumes de médias; PI <3 cadres privés! – WrightsCS

+0

Apple ne fait pas, c'est toujours le problème. J'ai utilisé beaucoup de méthodes privées, juste pour rendre mon application seulement _look_ Apple-ish. J'ai juste besoin d'écraser des méthodes privées ou ça ne ressemblera pas à d'autres applications iPhone (la vue d'alerte de la table Maps.app par exemple), j'espère que Apple comprendra. Bonne chance! – Joost

+0

Eh bien, j'espère vraiment qu'ils vont commencer à autoriser des méthodes plus privées, il semble qu'avec chaque nouveau SDK, ils rendent plus de frameworks privés! Très bientôt, TOUS les frameworks vont être privés, et il n'y aura plus de programme de développeurs Apple !!! – WrightsCS