我想在每个按钮点击时制作带有播放声音的iOS应用程序,我可以从设置屏幕禁用/启用声音。任何人都可以帮助我吗?
答案 0 :(得分:2)
好的,试试这段代码
在您的设置屏幕.h文件中
@interface SettingScreen : UIViewController<AVAudioPlayerDelegate,AVAudioSessionDelegate>
{
AVAudioPlayer *audioplayer;
}
<。>文件中的
-(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 *soundsOnOffButton = [[UISwitch alloc]initWithFrame:CGRectMake(180, 8, 130, 27)];
[self.view addSubview:soundsOnOffButton];
[soundsOnOffButton addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
soundsOnOffButton.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"sound"];
}
-(void)buttonAction:(UIButton *)sender
{
if (soundsOnOffButton.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
}
如果有任何问题,请回复我。
答案 1 :(得分:1)
在播放任何声音之前,请检查设置..?
// pseudo code
- (void)playSound:(NSInteger)soundID;
{
if(settings.soundEnabled) {
[SoundPlayer playSoundWithID:soundID];
}
}
答案 2 :(得分:0)
您无法更改设备声音(应用程序将被拒绝)如何设置音量如果用户选择禁用,则在设置选项中指定0到1之间的某些值,然后将其设置为0。 检查山姆的答案:How to disable iOS System Sounds