AVAudioPlayer EXC_BAD_ACCESS - PullRequest
       0

AVAudioPlayer EXC_BAD_ACCESS

5 голосов
/ 06 октября 2011

Я пытаюсь приостановить AVAudioPlayer, если он в данный момент воспроизводится. Когда я отлаживаю свой код и проверяю AVAudioPlayer, я вижу, что он выделен. Когда я пытаюсь получить доступ к методу / свойству (т. Е. myAudioPlayer isPlaying), я получаю ошибку EXC_BAD_ACCESS. Это происходит, если AVAudioPlayer не загружен звук. Можно ли как-то проверить, загрузил ли он звук? Я попытался получить доступ к myAudioPlayer.data, но все равно получаю ту же ошибку.

Ответы [ 3 ]

5 голосов
/ 14 октября 2015

Для меня это было потому, что я не звонил одному из назначенных инициализаторов. Я создавал его с помощью AVAudioPlayer() вместо назначенных инициализаторов, которые public init(contentsOfURL url: NSURL) throws и public init(data: NSData) throws

4 голосов
/ 06 октября 2011

Полагаю, вам нужно использовать метод prepareToPlay , чтобы определить, загружен он или нет.

0 голосов
/ 06 октября 2011

Сначала необходимо добавить AVFoundation Framework. Затем импортировать инфраструктуру AVFounadtion в файл .h.

.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];

Попробуйте этот код, он может вам помочь ..

...