4

ボタンタップごとに音を鳴らすiOSアプリを作りたいのですが、設定画面から音を無効/有効にできます。誰でもこれについて私を助けることができますか?

4

3 に答える 3

2

OK、このコードを試してください

設定画面で.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];
    }
}

設定画面用です。ここで、別の画面の任意のボタンのサウンドを再生する場合は、そのファイルにデリゲートと最初の4行を追加してから、この行をアクションに追加します。

-(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 に答える