Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 停止播放系统声音_Ios_Objective C_Cocoa Touch_Avaudioplayer - Fatal编程技术网

Ios 停止播放系统声音

Ios 停止播放系统声音,ios,objective-c,cocoa-touch,avaudioplayer,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]; } Audio

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

- (IBAction)sndOnOff:(id)sender {

    if (_sndBtn.selected == NO) {

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

        [_sndBtn setSelected:NO];
        [audioPlayer play];
    }
AudioServicesCreateSystemSoundID((__bridge CFURLRef)soundURL1, &sound2);
但是如何关闭我创建的系统声音呢

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

我们不能很好地控制系统声音是有原因的,因为它应该很短(在iOS<30秒)并且完整。想象一下,在任何操作系统中,我们经历了多少次系统声音中断

但你可以这样做:

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

- (IBAction)sndOnOff:(id)sender {

    if (_sndBtn.selected == NO) {

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

        [_sndBtn setSelected:NO];
        [audioPlayer play];
    }
AudioServicesCreateSystemSoundID((__bridge CFURLRef)soundURL1, &sound2);
再玩一遍:

AudioServicesPlaySystemSound(sound2);
当然,您可以在
AVPlayer
上播放“系统声音”,并像播放歌曲一样停止播放,但这意味着它“不应该”是系统声音。希望这有帮助。

就这么做吧

    AudioServicesDisposeSystemSoundID (sound2);

我想不出任何负面后果。

当你处于不想播放声音的状态时,你就不能避免播放声音吗?你不应该更改设备设置,而且无论如何也不能这样做。我不是在挖苦你,我只是想帮你。确实,您不应该将设备上的音量更改为应用程序中的静音。如果您允许用户切换声音,则没有理由不能在播放声音之前插入复选框。如果你把你的声音集中到一个类中,那么这个检查可以在一个点上完成。那么我怎么做呢?问题是当游戏开始时声音也会加载@Jking提供更多关于你如何加载游戏和声音的信息,这将帮助我们进一步帮助你。显示调用顺序。