2012-10-15 13 views
0

我在我的應用程序中播放音樂時遇到問題。 如果我把它寫在viewcontroller viewDidLoad中,一切正常。移動到課程時,mp3播放失敗

NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/jingle.caf", [[NSBundle mainBundle] resourcePath]]]; 

NSError *error; 
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 
audioPlayer.numberOfLoops = -1; 

if (audioPlayer == nil) 
    NSLog([error description]); 
else 
    [audioPlayer play]; 

但是,當我把它放到我自己的類,實例化它在viewDidLoad中,並用完全相同的代碼調用方法相同的viewController,這是行不通的。請問爲什麼?

+0

你是否實例化類並從viewDidLoad調用方法,或者你是否從其他地方進行調用? – rdelmar

+0

我從viewDidLoad創建實例。 AmbientSounds * as = [[AmbientSounds alloc] init]; [as playSound]; 在playSound中複製/粘貼我上面寫的代碼:/ – alexhajdu

+0

嘗試記錄「as」以確保它不是零。 – rdelmar

回答

0

這可能是因爲在viewDidLoad方法超出範圍之後,您的實例正在被釋放。製作一個屬性,輸入強大的,看看是否有效。

+0

是的,我們走吧。它有助於。謝謝! – alexhajdu