如何在ios中处理AVAudioplayer中的音量滑块位置

时间:2014-03-20 06:18:59

标签: ios iphone objective-c xcode avaudioplayer

我正在创建使用AVAudioplayer在音频列表上播放的小应用。我试图保存播放器的当前音量位置,这样当他返回音频视图时,音量滑块将在他离开时处于相同的位置。我正在尝试编写一些代码,但我不知道如何处理此功能。这就是我的尝试:

-(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];

}

1 个答案:

答案 0 :(得分:1)

您可以将滑块值保存在NSUserDefaults

尝试:

-(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];

}

<强>更新

- (void)playNextSong {
      // Do your stuff
      float volume = [[NSUserDefaults standardUserDefaults] floatForKey:@"volume"];
     self.audioPlayer.volume = volume;
}