当我的应用程序启动时,正在播放音乐:
-(void)playBgMusic {
NSString *path = [[NSBundle mainBundle] pathForResource:@"bgmusic" ofType:@"aif"];
theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play]; }
但他应该能够通过按下按钮来关闭音乐,如果他再次按下按钮,音乐应该会再次打开。我有:
-(IBAction)check {
if (isquiet == NO) {
[theAudio stop];
isquiet = YES;
defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:YES forKey:@"stringKey"];
}
else {
[self playBgMusic];
isquiet = NO;
defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:NO forKey:@"stringKey"]; } }
我想我没明白。现在它在我的第一个 ViewController 中工作,我可以打开和关闭音乐,但是当我在播放音乐时转到另一个 viewController,然后再次返回并按下按钮时,音乐不会停止,并且当我多次按下它时音乐第二次播放并重叠。
还有什么问题吗?
无需将其包装在 NSNumber 中,有一些方便的方法:
要设置 BOOL,请使用:
[userDefaults setBool:YESorNO forKey:@"yourKey"];
要访问它,请使用:
[userDefaults boolForKey:@"yourKey"];
[编辑以回答您的其他问题]
不确定为什么要使用 NSUserDefaults - 对于您想要实现的目标来说似乎没有必要?以下是我对可以开始/停止音乐的按钮所做的操作:
-(IBAction)check
{
if (isQuiet)
{
// Play music
// Change the button to indicate it is playing...
} else
{
// Stop music
// Change the button to indicate it has stopped...
}
// Set your isQuiet to be the opposite of what it was when the button was clicked
isQuiet = !isQuiet;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)