4

我想让 iOS 应用程序在每个按钮点击时播放声音,我可以从设置屏幕禁用/启用声音。谁可以帮我这个事?

4

3 回答 3

2

好的,试试这段代码

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

@interface SettingScreen : UIViewController<AVAudioPlayerDelegate,AVAudioSessionDelegate>
{
    AVAudioPlayer *audioplayer;
}

在 .m 文件中

-(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
}

有问题就回复我。

于 2012-12-03T10:15:50.133 回答
1

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

// pseudo code
- (void)playSound:(NSInteger)soundID;
{
  if(settings.soundEnabled) {
    [SoundPlayer playSoundWithID:soundID];
  }
}
于 2012-12-03T10:12:08.460 回答
0

您无法更改设备声音(应用程序将被拒绝)如何设置音量通过分配 0 到 1 之间的一些值。如果用户选择禁用,则在设置选项中将其设置为 0。在此处查看 sam 的答案:如何禁用 iOS系统声音

于 2012-12-03T10:07:15.567 回答