2009-03-12 16 views
5

So che non è possibile controllare il volume del dispositivo dall'interno dell'applicazione, ma vorrei che il volume del dispositivo fosse in grado di influenzare l'UIScrollBar presente nella mia applicazione per controllare il volume.iPhone - Pulsante di acquisizione del pulsante del dispositivo

So che questo è possibile perché l'applicazione Last.fm lo fa, vorrei implementare questo comportamento.

Sono in grado di trovare pochissime informazioni sugli interwebs. Qualcuno qui può aiutarmi forse? :)

risposta

15

E 'facile con un listener di callback

void audioVolumeChangeListenerCallback (void *inUserData, AudioSessionPropertyID inID, UInt32 inDataSize, const void *inData) 
{ 
    RootViewController *controller = (RootViewController *) inUserData; 
    Float32 newGain = *(Float32 *)inData; 
    [controller setGainManual:newGain]; 
} 

che viene inizializzato in viewDidLoad di mio controller di vista come questo

AudioSessionAddPropertyListener (kAudioSessionProperty_CurrentHardwareOutputVolume ,audioVolumeChangeListenerCallback, self); 

Questo è tutto SDK/App Store amichevole troppo.

+0

Facendolo in viewDidLoad è rischioso come la vista può scaricare se si riceve un avviso di memoria, e si registrerà per la richiamata due volte. –

+0

voglio che funzioni anche in background. C'è un metodo con cui posso ottenere questo. – Swati

Problemi correlati