2013-04-03 21 views
2

我是全新的,以iOS開發的聲音。我有一個簡單的'clicker'應用程序,每次點擊屏幕上的按鈕時都會發出聲音(mp3文件)。xcoded工具欄上的靜音鍵靜音只是在App

我想實現一個靜音按鈕,選擇時:

  1. 按鈕圖像的變化(直到再次選擇撐改變)

  2. 只是該應用程序的聲音靜音

  3. 再次選擇返回到原來的狀態 - 聽上去上previos按鈕圖像

這裏是我在玩我的聲音:

- (IBAction)click; 


#import "soundButtonViewController.h" 

@implementation soundButtonViewController 

-(IBAction)click 
{ 
    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef =CFBundleCopyResourceURL(mainBundle, 
    (CFStringRef)@"click",CFSTR ("mp3"), NULL); 
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 
} 

是否有此任何地方的任何示例代碼?我已經做了一些研究,似乎有一些方法,但是想要特定於我的要求。任何幫助或方向將不勝感激。謝謝。

+0

您可以對此使用暫停功能。改變形象並不難。你能告訴我們你的一些代碼嗎?你究竟如何彈奏這種聲音? –

+0

嗨,增加了我如何播放聲音代碼 – Mustafa

回答

1

要想改變該按鈕時,我通常這樣做的方法是創建一個BOOL來跟蹤按鈕的狀態。在這種情況下,BOOL是「muteOn」,Button的IBOutlet是muteButton。然後,我使用此代碼來控制按鈕圖像以及該應用是否被靜音。如果將muteON設置爲YES,您還可以將if/then放入您的點擊操作(如下所示)中以播放聲音或執行任何操作。記得在.h文件中聲明你的Bool。

-(IBAction)muteToggle{ 

if (muteOn == YES) { 
    muteOn = NO; 
    UIImage *buttonImage = [UIImage imageNamed:@"muteOff.png"]; 
    [muteButton setImage:buttonImage forState:UIControlStateNormal]; 
} 

else { 
    muteOn = YES; 
    UIImage *buttonImage = [UIImage imageNamed:@"muteOn.png"]; 
    [muteButton setImage:buttonImage forState:UIControlStateNormal]; 
} 

} 


-(IBAction) click { 

if (muteOn == YES){ 
//Do Nothing 
} 

else{ 
CFBundleRef mainBundle = CFBundleGetMainBundle(); 
CFURLRef soundFileURLRef; 
soundFileURLRef =CFBundleCopyResourceURL(mainBundle, 
(CFStringRef)@"click",CFSTR ("mp3"), NULL); 
    UInt32 soundID; 
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 

} 
} 
+0

對不起的就是你的分辨率爲靜音狀態的應用程序以及改變按鈕圖像上面提到的什麼? – Mustafa

+1

上面的代碼現在已經適應了你的代碼,包括muteOn BOOL和相關功能。 – Fluffhead

+0

爲什麼你將muteOn與YES比較?那種多餘的不? – Lance