2011-07-17 46 views
2

我想要做什麼是我首先有許多類,它們都具有相同的音樂貫穿始終,正如我在應用代表布爾申請去把推法說。但是,在我的最後3個班,我想不同的音樂,很公平,我就把這行代碼:有什麼辦法可以組三班嗎?

[(Smart2AppDelegate *)[UIApplication sharedApplication].delegate pauseAudioPlayer]; 
[(Smart2AppDelegate *)[UIApplication sharedApplication].delegate newAudioPlayer]; 

在我的應用程序委託:

-(void)newAudioPlayer { 

NSString *music = [[NSBundle mainBundle] 
        pathForResource:@"win" ofType:@"m4a"]; 
audio.delegate = self; 
self.audio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:music] error:NULL]; 

[audio play]; 
audio.numberOfLoops = -1; 
    } 

-(void)pauseAudioPlayer { 

[audio pause]; 
} 

所以它的工作原理,每當我去該視圖,它會改變音樂,讓我們調用該視圖,查看x。現在,從這個角度來看,我可以去往另外兩個視圖,例如我可以進入信息頁面,並有一個返回按鈕,返回到該視圖x,並與獎勵頁面相同。但是,當我回去的視圖X,音樂從頭開始,在這三個類,我想他們對所有循環,因爲它聽起來akward的從開始就不去了。原因很簡單,因爲我把它放在viewDidLoad中。但我怎麼能做到這一點,我正在想辦法實際分組課程,並在那裏放入avaudioplayer方法。

回答

0

這裏有一個可能的方法:

  1. 重構出來的音樂聽起來+機制納入一個單獨的類,即像Smart2AudioPlayer。
  2. 公開必要的方法:播放,暫停,簡歷,這樣你可以在任何地方使用的音頻播放器。
  3. 在每個viewDidLoad方法,調用音頻播放器和沿參數傳遞到表明誰是發送者(誰想要播放的聲音),並說明您是否希望繼續播放當前的組歌首選項(參見下文)或者重新開始。
  4. 實現音頻播放器所需的邏輯,允許類特定羣體相關聯在一起。這樣,當您從屬於一組類,而其他類同一組的播放歌曲請求的音樂播放,你將無法再次啓動首歌,你乾脆什麼也不做。

希望這會有所幫助

相關問題