停止播放系统声音

时间:2014-04-25 18:08:51

标签: ios objective-c cocoa-touch avaudioplayer

我可以使用以下方式关闭音频播放器:

- (IBAction)sndOnOff:(id)sender {

    if (_sndBtn.selected == NO) {

        [_sndBtn setSelected:YES];
        [audioPlayer stop];
        }
        else{

        [_sndBtn setSelected:NO];
        [audioPlayer play];
    }

但是如何关闭我创建的系统声音?

 NSURL *soundURL1 = [[NSBundle mainBundle] URLForResource:@"selectSound"
                                            withExtension:@"wav"];
 AudioServicesCreateSystemSoundID((__bridge CFURLRef)soundURL1, &sound2);

2 个答案:

答案 0 :(得分:3)

有一个原因是我们无法对系统声音进行精细控制 - 因为它应该是短暂的(在iOS <30秒内)并且完整。想象一下,在任何操作系统中我们有多少次系统声音切断?

但你可以这样做:

AudioServicesDisposeSystemSoundID (sound2);

阻止它。但这意味着您需要使用以下方法再次创建声音:

AudioServicesCreateSystemSoundID((__bridge CFURLRef)soundURL1, &sound2);

再次播放:

AudioServicesPlaySystemSound(sound2);

您当然可以播放您的系统声音&#34;在AVPlayer并停止它就像你唱一首歌,但这意味着它不应该是#34;首先是系统声音。希望这会有所帮助。

答案 1 :(得分:0)

这样做......

    AudioServicesDisposeSystemSoundID (sound2);

我想不出任何负面后果。