0

我有一个简单的问题:我找到了一种在播放第二个文件时停止播放文件的方法,这样它们就不会重叠。现在我的问题是,如何将此方法应用于例如 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];
 }
4

1 回答 1

0

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

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

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

当你的声音完成播放时,你可能会觉得很有趣,并确保将 playingSoundPlayer 设置为 nil,但再次调用 stop 可能不会有任何伤害,所以这取决于你。

于 2013-07-16T20:12:57.170 回答