2

私はiOS開発の初心者です。画面上のボタンをクリックするたびに音(mp3ファイル)を鳴らすシンプルな「クリッカー」アプリがあります。

選択したときにミュートボタンを実装したい:

  1. ボタンの画像が変更されます (再度選択されるまで変更されたままになります)。

  2. アプリの音だけ消音

  3. もう一度選択すると元の状態に戻ります - サウンドオンと前のボタン画像

サウンドを再生する方法は次のとおりです。

- (IBAction)click;


#import "soundButtonViewController.h"

@implementation soundButtonViewController

-(IBAction)click
{
   CFBundleRef mainBundle = CFBundleGetMainBundle();
   CFURLRef soundFileURLRef;
   soundFileURLRef =CFBundleCopyResourceURL(mainBundle, 
   (CFStringRef)@"click",CFSTR ("mp3"), NULL);
   UInt32 soundID;
   AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
   AudioServicesPlaySystemSound(soundID);
}

これのサンプルコードはどこにありますか? 私はいくつかの調査を行いましたが、そこにはいくつかの方法があるようですが、私の要件に固有のものを求めていました. どんな助けや指示も大歓迎です。ありがとう。

4

1 に答える 1

1

ボタンを変更する場合、これを行う通常の方法は、BOOL を作成してボタンの状態を追跡することです。この場合、BOOL は「muteOn」で、ボタンの IBOutlet は muteButton です。次に、このコードを使用して、ボタンの画像と、アプリがミュートされているかどうかを制御します。また、muteON が YES に設定されている場合は、クリック アクション内に if/then を配置して (以下にも示されています)、サウンドを再生するか、何もしないようにすることもできます。.h ファイルでも Bool を宣言することを忘れないでください。

-(IBAction)muteToggle{

if (muteOn == YES) {
    muteOn = NO;
    UIImage *buttonImage = [UIImage imageNamed:@"muteOff.png"];
    [muteButton setImage:buttonImage forState:UIControlStateNormal];
}

else {
    muteOn = YES;
    UIImage *buttonImage = [UIImage imageNamed:@"muteOn.png"];
    [muteButton setImage:buttonImage forState:UIControlStateNormal];
}

}


-(IBAction) click {

 if (muteOn == YES){
//Do Nothing
 }

 else{
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef =CFBundleCopyResourceURL(mainBundle, 
 (CFStringRef)@"click",CFSTR ("mp3"), NULL);
  UInt32 soundID;
 AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
  AudioServicesPlaySystemSound(soundID);

}
}
于 2013-04-03T20:30:03.793 に答える