我有一个 iOS 应用程序,它的工作原理如下:
第一个视图 3 个链接到不同视图的按钮,每个都有自己的音频文件
想象用户打开一个视图,并开始播放音频文件。当他们在应用程序中导航时,音频文件仍然可以播放,这很好,我很满意。
但是,如果用户随后打开第二个音频文件并按下播放,它会在第一个文件的顶部播放,因此 2 个音频一起播放。
我如何告诉代码如果按下另一个播放按钮它应该停止正在播放的第一个音频文件?
我正在使用 AVFoundation 框架来执行此操作
代码如下:
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];
[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];
}