2011-10-06 89 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