2011-10-06 92 views
4

我試圖暫停AVAudioPlayer,如果它正在播放。當我調試我的代碼並檢查AVAudioPlayer時,我發現它已分配。當我嘗試訪問它的一個方法/屬性時(即myAudioPlayer isPlaying),我得到一個EXC_BAD_ACCESS錯誤。如果AVAudioPlayer沒有加載聲音,則會發生這種情況。有沒有辦法檢查它是否加載了聲音?我試圖訪問myAudioPlayer.data,但我仍然得到相同的錯誤。AVAudioPlayer EXC_BAD_ACCESS

+0

你可以張貼一些代碼實例呢?我的猜測是你在初始化之前正在訪問AVAudioPlayer。 –

+0

嘗試檢查它是否正確初始化https://www.reddit.com/r/swift/comments/2whoaz/avaudioplayer_issue_with_stopping_and_checking_if – WINSergey

回答

0

首先您必須添加AVFoundation Framework.Then,然後在.h文件中導入AVFounadtion框架。

.H:

AVAudioPlayer *audioPlayer; 

.M:

NSURL *url1 = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audio1.mp3", [[NSBundle mainBundle] resourcePath]]]; 

    NSError *error; 
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url1 error:&error]; 
    //audioPlayer.numberOfLoops = 0; 

     [audioPlayer play]; 

試試這個代碼,它可以幫助你..

4

對我來說,那是因爲我沒有要求的一個指定的初始者。我與AVAudioPlayer(),而不是指定initialisers這是public init(contentsOfURL url: NSURL) throwspublic init(data: NSData) throws