2010-03-18 94 views
0

iam使用AVFoundation框架播放MP3文件,一切正常,我有2個按鈕,我把它們放在一起,[用戶播放和恢復時使用.hidden功能]音樂[播放按鈕將隱藏並恢復按鈕隱藏],因此如果用戶更改視圖(音樂正在播放)並返回到預覽視圖,則按鈕無法正常工作,這意味着只播放音樂並且恢復不起作用,我把我的代碼放到viewDidLoad中,我知道是因爲這個,但我該如何解決這個問題?播放音樂和切換視圖的問題[iPhone SDK]

NSString * musicSonati = [[NSBundle mainBundle] pathForResource:@"music"  ofType:@"mp3"]; 
myMusic = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:musicSonati] error:NULL]; 
myMusic.delegate = self; 
myMusic.numberOfLoops = -1; 
pauseM.hidden = YES; 
play.hidden = NO; 

回答

1

我的猜測是你的問題的很大一部分是你的「預覽視圖」是處理所有的責任通過AVAudioPlayer框架播放聲音。你想要做的是重新設計你的應用程序,所以有一個proxy object處理AVAudioPlayer。在您的應用程序委託中創建並初始化此代理對象,然後將其傳遞給根視圖控制器,並傳遞給需要處理聲音播放的任何其他視圖控制器。

隨着重新設計,您的「預覽視圖」只需要詢問(在viewDidLoad)您的聲音代理對象是否播放聲音(無論是通過詢問還是通過註冊接收來自對象的NSNotification)並設置它自己的狀態(即按鈕)。

+0

我用pagecurl切換視圖,但用[self presentModalViewController:qazal animated:YES];我沒有這個問題 – Momi 2010-03-18 22:56:50