使用UISwitch静音AVAudioPlayer背景音乐

时间:2015-08-25 17:05:11

标签: ios avaudioplayer uiswitch mute

我是编程的新手,我正在开发我的第一个应用程序。几个星期以来,我还没能找到答案。我真的很感激一些帮助。

我通过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。

1 个答案:

答案 0 :(得分: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;
    }
}