2012-06-06 116 views
0

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

回答

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; 
} 
2
MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer]; 
if ([switch isOn]){ 
    [musicPlayer setVolume:1.0]; 
} else { 
    [musicPlayer setVolume:0.0]; 
} 

希望这会有所帮助。

+0

我不认为这会工作,因为'MPMusicPlayerController'只影响音乐库的播放? – zoul

+0

MPMusicPlayerController效果系统声音。因此,如果您将音乐播放器的音量设为静音,则会使系统声音静音。所以这段代码也可以工作,它对我有用。但是,这当然取决于你的要求,你是否想要实现这个或其他什么。 –

+0

啊哈,我不知道。谢谢! – zoul

相关问题