Я написал дешевую и веселую звуковую плату для своего Mac и воспроизводил различные звуки с помощью NSSound следующим образом:
-(void)play:(NSSound *)soundEffect:(BOOL)stopIfPlaying {
BOOL wasPlaying = FALSE;
if([nowPlaying isPlaying]) {
[nowPlaying stop];
wasPlaying = TRUE;
}
if(soundEffect != nowPlaying)
{
[soundEffect play];
nowPlaying = soundEffect;
} else if(soundEffect == nowPlaying && ![nowPlaying isPlaying] && !wasPlaying) {
[nowPlaying play];
}
}
Вместо того, чтобы просто остановить его, я бы хотел, чтобы он исчез через пару секунд или около того.