0

我的应用程序视图中有一些按钮,当用户单击一个按钮时它会播放声音。我想在应用程序设置视图中添加一个开关,当用户关闭开关时,用户单击按钮时不会播放任何声音。然后开关打开,声音将再次播放。我该怎么办?先感谢您!

4

2 回答 2

2
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
if ([switch isOn]){
   [musicPlayer setVolume:1.0];
} else {
    [musicPlayer setVolume:0.0];
}

希望这可以帮助。

于 2012-06-06T07:40:56.160 回答
1

一种选择是通过单个类路由所有声音播放并向此类添加一个属性以用于静音或声音跳过:

@interface Jukebox : NSObject
@property(assign, getter=isMuted) BOOL muted;
- (void) playSoundWithID: (NSString) soundID;
@end

@implementation Jukebox
@synthesize muted;

- (void) playSoundWithID: (NSString) soundID
{
    if (!muted) {
        // …
    }
}

@end

或者您可以在播放之前包装AVAudioPlayer并使其检查一些应用程序范围的布尔标志:

@implementation CustomAudioPlayer

- (BOOL) play
{
    return ([[AppSettings sharedInstance] playSounds]) ?
        [super play] : NO;
}
于 2012-06-06T07:58:18.290 回答