使用 UISwitch 静音 AVAudioPlayer 背景音乐

Mute AVAudioPlayer Background music with UISwitch

我对编程还很陌生,我正在开发我的第一个应用程序。几个星期以来,我一直找不到答案。我真的很感激一些帮助。

我通过 AVAudioPlayer(我的应用程序中唯一的声音)播放背景音乐,它在我的应用程序打开时开始播放 - 这是我的 appdelegate.m:

中的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSString *bgmusic=[[NSBundle mainBundle]pathForResource:@"cloud_two-full-" ofType:@"mp3"];
    bgmusic1=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:bgmusic] error:NULL];
    bgmusic1.delegate=self;
    bgmusic1.numberOfLoops=-1;

    [bgmusic1 play];
    [bgmusic1 setVolume:1.0];
}

所以,我创建了一个 uiswitch,我想用它来使背景音乐静音。这是我的 viewcontroller.m:

中的 IBAction
- (IBAction)speakerOnOff:(id)sender {
    static BOOL muted = NO;

    if (muted) {
        [bgmusic1 setVolume:1.0];
    } else {
        [bgmusic1 setVolume:0.0];
    }
    muted = !muted;
}

但是当我点击开关关闭时,音乐继续以正常音量播放。我只有 1 个视图控制器。请帮忙!我只是想让音乐在点击开关关闭时静音,然后在开关重新打开时回到音量 1.0。

写这段代码

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];

以上

bgmusic1=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:bgmusic] error:NULL];

然后像这样制作你的按钮动作

- (IBAction)speakerOnOff:(id)sender {
    if ( bgmusic1.volume == 0) {
        bgmusic1.volume = 1;
    } else {
        bgmusic1.volume =0;
    }
}