AVFoundation iOS 5 - PullRequest
       17

AVFoundation iOS 5

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

Мои приложения, работающие в магазине приложений, используют mp3 и видеофайлы, которые не работают после обновления iOS5 .

Я установил xcode 4.2 и... При тестировании на устройстве iPhone 5 Simulator или появляется следующая ошибка (для аудио или видео файлов):

Error loading 
System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn:  
dlopen(/System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn, 262): 
Symbol not found: ___CFObjCIsCollectable
Referenced from: /System/Library/Frameworks/Security.framework/Versions/A/Security
Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
in /System/Library/Frameworks/Security.framework/Versions/A/Security

При попытке выполнить этов устройстве iPhone 4.3 или оно не падает ..

Я очистил и повторно импортировал соответствующие фреймворки, но, похоже, это ошибка

Примечание. Мои приложения не используют никакой защиты.

Не могли бы вы помочь?

Ответы [ 4 ]

9 голосов
/ 18 ноября 2011

Я только что нашел ответ здесь .

Если ваше приложение дает сбой, отключите все исключения в XCode 4 на вкладке «Точки останова». Может быть, это ошибка SDK.

4 голосов
/ 29 января 2012

Постарайтесь сделать своего игрока оставшейся собственностью. Я испытал то же самое, и, поскольку я объявил своего игрока локально, я думаю, что ARC сохранился, как только метод, в котором я объявил игрока, вышел за рамки.

Сделать игрока сохраняемым свойством

@property (strong)AVAudioPlayer *player;

Не забудьте установить делегата (self.player.delegate = self) и использовать методы делегата для очистки:

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)playedSuccessfully {
    self.player = nil;
}
1 голос
/ 17 октября 2011

Я нашел решение: NSURL вместо NSString:

NSURL *chemin = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/MySound.wav", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
AVAudioPlayer* mySound = [[AVAudioPlayer alloc] initWithContentsOfURL:chemin error:&error];
mySound.delegate = self;
[chemin release];
[mySound Play];
0 голосов
/ 17 октября 2011

У меня была такая же ошибка, но мой код не отличался от вашего.Мне действительно ничего не нужно в инфраструктуре безопасности, но добавление этой платформы в мой проект устранило эту проблему.

...