このプロジェクトにしばらく取り組んでいますが、理解できない問題に遭遇しました。
まず、NSDefaultUser に BOOL 値として保存するチェックボックス ボタンがあります。一度押すと値 YES を保存し、もう一度押すと NO を保存します... このチェックボックス ボタンは、通常のカスタム チェックボックス ボタンのように正常に機能します。
このチェックボックス ボタンを使用して、アプリ内のすべてのサウンドをミュートするオプションを作成したいと考えています。
次のようなメソッドを呼び出してサウンドを再生しています。
- (void)startMusic1
{
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/music1.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
AVAudioPlayer *audioPlayer;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;
if (audioPlayer == nil)
NSLog(@"Error: %@", [error description]);
else
[audioPlayer play];
}
したがって、アプリで再生したいすべてのサウンドに対して、次のようなことを繰り返すことができます。
- (IBAction)playButton:(id)sender
{
NSUserDefaults *default = [NSUserDefaults standardUserDefaults];
if(![default boolForKey:@"isMuted"])
{
[self startMusic1];
}
}
しかし、私のプロジェクトでは多くの異なるサウンド (およびサウンドを再生するさまざまなボタン) を管理する必要があり、これらの手順を繰り返す必要がないように思われるため、これは特に繰り返しになります。
AVAudioPlayer のサブクラスで新しいクラスを作成して、-(BOOL)play メソッドを数日間いじりましたが、思うような結果が得られませんでした。アプリのサウンドを無効にするなどの投稿を調査して見つけましたが、それでもうまくいきません。
私は全体的にプログラミングにかなり慣れていないので、誰かが私を少し啓発できれば素晴らしいと思います。