防止多个声音文件重叠播放

时间:2013-07-16 20:00:11

标签: ios audio

我有一个简单的问题:我找到了一种方法,可以在播放第二个文件时停止播放文件,这样它们就不会重叠。现在我的问题是,如何将这个methoid应用到例如7个文件而不会使语句太长?

- (IBAction)playSound1 {
if (self.sound2Player.playing)
    [self.sound2Player stop];
[self.sound1Player play];
 }

 - (IBAction)playSound2 {
if (self.sound1Player.playing)
    [self.sound1Player stop];
[self.sound2Player play];
 }

1 个答案:

答案 0 :(得分:0)

有很多不同的方法可以解决这个问题。

首先想到的是保留一个当前播放声音的局部变量。

- (IBAction)playSound1 {
    if (self.playingSoundPlayer != nil) {
        [self.playingSoundPlayer stop];
    }
    self.playingSoundPlayer = self.sound1Player;
    [self.sound1Player play];
}

当你的声音结束播放时,你可能会想到并确保将playSoundPlayer设置为nil,但是再次调用stop可能不会有任何伤害,所以这取决于你。

相关问题