2012-06-06 29 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

相關問題