ボタンタップごとに音を鳴らすiOSアプリを作りたいのですが、設定画面から音を無効/有効にできます。誰でもこれについて私を助けることができますか?
質問する
2761 次
3 に答える
2
OK、このコードを試してください
設定画面で.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];
}
}
設定画面用です。ここで、別の画面の任意のボタンのサウンドを再生する場合は、そのファイルにデリゲートと最初の4行を追加してから、この行をアクションに追加します。
-(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 に答える