我已经在这个项目上工作了一段时间,但是我遇到了一个我无法弄清楚的问题。
首先,我有一个复选框按钮,可以将 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 方法搞砸了几天,但我无法获得我想要的结果。我研究并发现了在应用程序声音中禁用之类的帖子,但这仍然不会这样做。
我对整体编程很陌生,所以如果有人能启发我一点,那就太好了。