Ios 使用循环播放切换播放/暂停按钮
我有一个按钮,点击时可以在播放和暂停图像之间切换。当显示播放图像时,播放循环声音,当显示暂停图像时,声音停止播放 我已经设法让这个工作,但有一个问题。当您点击“暂停-停止”按钮时,它会最后播放一次声音,因此暂停操作会延迟声音的秒数 这是我的密码:Ios 使用循环播放切换播放/暂停按钮,ios,objective-c,avaudioplayer,Ios,Objective C,Avaudioplayer,我有一个按钮,点击时可以在播放和暂停图像之间切换。当显示播放图像时,播放循环声音,当显示暂停图像时,声音停止播放 我已经设法让这个工作,但有一个问题。当您点击“暂停-停止”按钮时,它会最后播放一次声音,因此暂停操作会延迟声音的秒数 这是我的密码: @implementation ViewController AVAudioPlayer *myAudio; - (void)viewDidLoad { [super viewDidLoad]; [self.myButton setImage:[U
@implementation ViewController
AVAudioPlayer *myAudio;
- (void)viewDidLoad {
[super viewDidLoad];
[self.myButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
[self.myButton setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateSelected];
}
- (IBAction)buttonTapped:(id)sender {
NSURL *musicFile;
musicFile = [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"]];
myAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
if(self.myButton.selected)
[self.myButton setSelected:NO];
else
[self.myButton setSelected:YES];
if(self.myButton.selected)
[myAudio setNumberOfLoops:-1];
[myAudio play];
}
你所做的就是每次点击按钮时创建一个播放器 您应该尝试在viewDidLoad中创建一个AVPlayer,并在buttonTapped:函数中使用它的播放和暂停功能
- (void)viewDidLoad {
[super viewDidLoad];
[self.myButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
[self.myButton setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateSelected];
NSURL *musicFile = [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"]];
myAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
}
- (IBAction)buttonTapped:(id)sender {
[self.myButton setSelected:!self.myButton.selected];
if (self.myButton.selected) {
[player seekToTime:kCMTimeZero];
[player play];
}
else {
[player pause];
}
}
单击该按钮将首先切换其是否处于选中状态,然后根据其状态,播放器将回放并开始播放,或立即暂停。非常感谢@Ramon!!工作很好:必须将播放器更改为myAudio,但我没有获得seekToTime…-函数,但将其更改为setNumberOfLoops。