如何关闭所有应用声音?

时间:2012-06-06 07:18:20

标签: ios audio

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

2 个答案:

答案 0 :(得分:2)

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

希望这有帮助。

答案 1 :(得分: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;
}