我是iOS开发的新手。我现在有一个应用程序,里面有一些SFX。我找到了其他几个线程来解释方法/逻辑,我完全理解,但这是我想要的代码,因为我不知道语法。
如果我使用UI Switch,我将如何关闭应用程序中使用的任何SFX?
如有任何帮助和协助,我们将不胜感激。
谢谢大家。
您是如何使用sfx的?如果你能上传你的代码,那会有所帮助。但你可以试试这个吗?
- (IBAction)SwitchValueChanged:(id)sender
{
if([sender isOn])
{
NSLog(@"Switch is ON");
//On Your SFX
}
else
{
NSLog(@"Switch is OFF");
//Off Your SFX
}
}
我真的不明白你说的有些SFX是什么意思,所以很难提供帮助
您可能有一个选择。所以在.h文件中的开关将其关闭,放入此代码。
@interface SettingScreen : UIViewController<AVAudioPlayerDelegate,AVAudioSessionDelegate>
{
AVAudioPlayer *audioplayer;
}
in.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 *soundsButton = [[UISwitch alloc]initWithFrame:CGRectMake(180, 8, 130, 27)];
[self.view addSubview:soundsOnOffButton];
[soundsOnOffButton addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
soundsButton.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"sound"];
}
-(void)buttonAction:(UIButton *)sender
{
if (soundsButton.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];
}
}
现在,如果你想为某事播放声音。(使用按钮作为示例)在另一个屏幕中,将委托和前四行添加到文件中,然后将这一行添加到他们的操作中。
-(void)buttonAction:(UIButton *)sender
{
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"sound"]==YES)
{
[audioplayer play];
}
// other code
}
希望它能起作用。