Question

Is there a way I can get the current system volume level on the iPhone?

I'm thinking maybe there's a way to make an MPVolumeView and get the value from that.

Was it helpful?

Solution

musicPlayer = [[MPMusicPlayerController iPodMusicPlayer];

currentVolume = musicPlayer.volume;

This is now deprecated as of iOS8.0 so try the following

#import <AVFoundation/AVAudioSession.h>

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
CGFloat volume = audioSession.outputVolume;

OTHER TIPS

Celestial.framework has an AVSystemController class that lets you get and set the current volume. Unfortunately it is a private class so Apple won't accept it in App Store submissions

If it helps, you can abuse the public MPVolumeView class a bit: http://www.stormyprods.com/blogger/2008/09/proper-usage-of-mpvolumeview-class.html

swift 3.0

..

import AVKit
..
    // get current level:
    let  audioSession = AVAudioSession.sharedInstance()
    let volume : Float = audioSession.outputVolume

Add MediaPlayer Framework into your project

enter image description here

.h (Header file)

{

  MPMusicPlayerController *musicPlayer; 

}

.m (implementation file)

- (void)viewDidLoad

{

//get device volume level

   musicPlayer = [MPMusicPlayerController iPodMusicPlayer];

   float deviceVolumeLevel = musicPlayer.volume;

   NSLog(@"Current device volume level : %f",deviceVolumeLevel);
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top