如何使音量滑块随手机音量和进度滑块可调而调整

How to make the volume slider adjust with phone volume and progress slider adjustable?

本文关键字:调整 何使音 手机      更新时间:2023-10-16

我开发了一个具有音频播放功能的iOS应用程序。我使用进度视图播放音频,并使用水平滑块进行音量控制。

我需要帮助的 2 件事:

  1. 进度视图不可编辑。我的意思是,当曲目正在播放时,用户应该能够将其拖动到某个点并从那里播放。与iOS音乐应用程序或Spotify相同?

  2. 音量滑块允许用户调整音量,但它不能与iOS设备音频一起使用。这意味着,当音频电平更改时,它应该在实际设备上更改。

这是我的代码:

NSString *stringPath = [[NSBundle mainBundle]pathForResource:@"01" ofType:@"MP3"];
NSURL *url = [NSURL fileURLWithPath:stringPath];


NSError *error;
avPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
[avPlayer setNumberOfLoops:2];
[avPlayer setVolume:self.sliderVolumeOutlet.value];
[avPlayer stop];
[NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(updateMyProgress) userInfo:nil repeats:YES];

-(void)updateMyProgress
{
    float progress = [avPlayer currentTime]/[avPlayer duration];
    self.myProgressView.progress = progress;
}
- (IBAction)sliderVolumeAction:(id)sender {
    UISlider *mySlider = sender;
    [avPlayer setVolume:mySlider.value];
}
- (IBAction)stopButton:(id)sender {
    [avPlayer stop];
    [avPlayer setCurrentTime:0];
}
- (IBAction)pauseButton:(id)sender {
    [avPlayer pause];
}

- (IBAction)playButton:(id)sender {
    [avPlayer play];
}
- (IBAction)backButtonEvent:(id)sender {
    [self dismissViewControllerAnimated:YES completion:NULL];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [avPlayer stop];
}
  1. 使用UISlider而不是进度视图。

  2. 使用MPVolumeView进行音量控制。只需将其放置在视图层次结构中,它就可以在没有任何附加布线的情况下工作。