Reputation: 341
I am creating little app that uses AVAudioplayer
to play on audio list. I am trying to save the current volume position of the player so when he return back to audio view the volume slider will be on same position when he left off. I am trying to write some code but I don't know how to handle this functionality. Here's what I tried:
-(void)viewDidLoad
{
UISlider *aslider=[[UISlider alloc]initWithFrame:CGRectMake(40, 370, 220, 20)];
volumeSlider=aslider;
[volumeSlider addTarget:self action:@selector(volumeSliderMoved:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:volumeSlider];
}
-(void)volumeSliderMoved:(UISlider *)sender
{
self.audioPlayer.volume=[sender value];
}
Upvotes: 0
Views: 782
Reputation: 5232
You can save the slider value in NSUserDefaults
Try:
-(void)viewDidLoad
{
UISlider *aslider=[[UISlider alloc]initWithFrame:CGRectMake(40, 370, 220, 20)];
// fetch previous saved volume from NSUserDefaults. If this is first time it will be 0.
float volume = [[NSUserDefaults standardUserDefaults] floatForKey:@"volume"];
self.audioPlayer.volume = volume;
volumeSlider.value = volume;
volumeSlider=aslider;
[volumeSlider addTarget:self action:@selector(volumeSliderMoved:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:volumeSlider];
}
-(void)volumeSliderMoved:(UISlider *)sender
{
// Save the slider value to NSUserDefaults so it can be used next time.
[[NSUserDefaults standardUserDefaults] setFloat:[sender value] forKey:@"volume"];
self.audioPlayer.volume=[sender value];
}
UPDATE
- (void)playNextSong {
// Do your stuff
float volume = [[NSUserDefaults standardUserDefaults] floatForKey:@"volume"];
self.audioPlayer.volume = volume;
}
Upvotes: 1