2012-07-16 108 views
1

我有firstViewControllerSecondViewController。在兩個控制器中,我都可以點擊播放按鈕並播放旋律。所以,當我點擊1控制器中的播放按鈕,然後去2控制器,並點擊其他播放按鈕2旋律將一起播放。所以我的問題是如何在第二個控制器中點擊播放按鈕時從第一個控制器停止第一個旋律。謝謝!Avaudioplayer如何停止從其他控制器播放對象

在firstViewController viewdidload

NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"first" ofType:@"wav"]; 
NSURL *soundURL_ = [NSURL fileURLWithPath:soundPath]; 
AVAudioPlayer *first = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL_ error:nil]; 
[first prepareToPlay]; 

同樣在secondViewcontroller相同,但第二,而不是第一

當我按下按鈕:

[first play] 
+0

顯示您的代碼,併爲您的問題提供更好的標題。 – 2012-07-16 20:47:56

回答

2

可以創建自定義對象的一個​​實例包含AVAudioPlayer和與播放器相關的方法,然後在兩者中創建該對象的指針你的意見。

如果您想從AppDelegate中實例化您的AVAudioPlayer,您必須首先設置AVAudioPlayer並將其分配給AppDelegate的屬性。

從您的視圖控制器中,訪問應用程序委託的任何財產是容易的,只寫:

AppNameAppDelegate *ad = (AppNameAppDelegate *)[[UIApplication sharedApplication] delegate]; 

依次爲:

localAVAudioPlayerInstance = ad.audioPlayer; 

讓我知道,如果你想了解更多詳細說明。

+0

但它會在第二個視圖中再次播放 – Noobass 2012-07-17 05:11:42

+0

如果您只有一個此對象的實例,則此對象本質上就是大腦。你可以從很多地方訪問這個對象的一個​​實例,並通過這個對象來控制所有的音頻調用,所以你必須編寫它來進行自我檢查。 – achi 2012-07-17 14:37:06

+0

你有我可以檢查的代碼嗎?我實際上想看看如何在應用程序委託中聲明一個avaudioplayer對象,然後在其他控制器中訪問它! – Noobass 2012-07-28 21:50:38

相關問題