使iOS应用程序具有启用和禁用声音的选项

时间:2012-12-03 09:59:50

标签: iphone ios

我想在每个按钮点击时制作带有播放声音的iOS应用程序,我可以从设置屏幕禁用/启用声音。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

好的,试试这段代码

在您的设置屏幕.h文件中

@interface SettingScreen : UIViewController<AVAudioPlayerDelegate,AVAudioSessionDelegate>
{
    AVAudioPlayer *audioplayer;
}
<。>文件中的

-(void)viewDidLoad
{
    NSString* BS_path_blue=[[NSBundle mainBundle]pathForResource:@"Click" ofType:@"mp3"];
    audioplayer =[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:BS_path_blue]  error:NULL];
    audioplayer.delegate=self;
    [audioplayer prepareToPlay];

    UISwitch *soundsOnOffButton = [[UISwitch alloc]initWithFrame:CGRectMake(180, 8, 130, 27)];
    [self.view addSubview:soundsOnOffButton];
    [soundsOnOffButton addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

     soundsOnOffButton.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"sound"];
}

-(void)buttonAction:(UIButton *)sender
{
    if (soundsOnOffButton.on)
    {

        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"sound"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        if ([[NSUserDefaults standardUserDefaults] boolForKey:@"sound"]==YES)
        {
            [audioplayer play];
        }
    }
    else
    {
        [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"sound"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }
}

这是用于设置屏幕。现在,如果您想为另一个屏幕中的任何按钮播放声音,请在该文件中添加委托和第四行,然后将此行添加到其操作中。

-(void)buttonAction:(UIButton *)sender
{
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"sound"]==YES)
    {
         [audioplayer play];
     }

    // other code
}

如果有任何问题,请回复我。

答案 1 :(得分:1)

在播放任何声音之前,请检查设置..?

// pseudo code
- (void)playSound:(NSInteger)soundID;
{
  if(settings.soundEnabled) {
    [SoundPlayer playSoundWithID:soundID];
  }
}

答案 2 :(得分:0)

您无法更改设备声音(应用程序将被拒绝)如何设置音量如果用户选择禁用,则在设置选项中指定0到1之间的某些值,然后将其设置为0。 检查山姆的答案:How to disable iOS System Sounds