AVAudioPlayer没有停止

时间:2013-12-31 05:08:18

标签: objective-c if-statement

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                     pathForResource:@"Breath"
                                     ofType:@"mp3"]];
NSError *error;
breathPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];

if (error) {
    NSLog(@"Error in audioPlayer: %@", [error localizedDescription]);
} else {
    breathPlayer.delegate = self;
    [breathPlayer prepareToPlay];
}

在这里,我在功能

中停止我的播放器
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    if ([self isTouch:touch WithinBoundsOf:MouthArea]) {
        BreathImg.center = MouthArea.center;
        NSLog(@"Touch Correct");
        [breathPlayer play];
        [breathPlayer setNumberOfLoops:1];
    } else {
        [breathPlayer stop];
    }
}

玩家不会停止。它就像暂停

1 个答案:

答案 0 :(得分:0)

查看stop method的Apple文档。事实上:

  

stop方法不会重置currentTime属性的值   换句话说,如果你在播放期间叫停,然后再打电话   播放,播放从其停止的位置恢复。

您只需添加

即可
breathPlayer.currentTime = 0.0;

在你的[breathPlayer stop];行之后完成你想要的任务。