我想让 iOS 应用程序在每个按钮点击时播放声音,我可以从设置屏幕禁用/启用声音。谁可以帮我这个事?
问问题
2761 次
3 回答
2
好的,试试这段代码
在您的设置屏幕 .h 文件中
@interface SettingScreen : UIViewController<AVAudioPlayerDelegate,AVAudioSessionDelegate>
{
AVAudioPlayer *audioplayer;
}
在 .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 *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
}
有问题就回复我。
于 2012-12-03T10:15:50.133 回答
1
在播放任何声音之前检查设置..?
// pseudo code
- (void)playSound:(NSInteger)soundID;
{
if(settings.soundEnabled) {
[SoundPlayer playSoundWithID:soundID];
}
}
于 2012-12-03T10:12:08.460 回答
0
您无法更改设备声音(应用程序将被拒绝)如何设置音量通过分配 0 到 1 之间的一些值。如果用户选择禁用,则在设置选项中将其设置为 0。在此处查看 sam 的答案:如何禁用 iOS系统声音
于 2012-12-03T10:07:15.567 回答