Ошибка воспроизведения видео в MPMoviePlayerController: символ не найден: ___CFObjCIsCollectable - PullRequest
3 голосов
/ 13 января 2012

Это происходит только на iOS 5 Simulator на Lion.Если я попробую его на устройстве или на симуляторе iPhone 4.3, он будет работать нормально.

В основном я инициализирую moviePlayer с удаленным URL, видеобуферами, и когда я ожидаю, что он начнет воспроизводиться, он вылетает.с этой ошибкой:

2012-01-13 08:07:29.169 pluralsight-app[560:1760f] 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
2012-01-13 08:07:29.181 pluralsight-app[560:1760f] 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

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

Есть идеи?

1 Ответ

3 голосов
/ 02 августа 2012

У меня была такая же проблема с AVPlayer, и в итоге я обнаружил проблему: у меня была установлена ​​точка останова для всех исключений, но AVPlayer выдает исключения при нормальной работе. Отсюда и сообщение об ошибке & crash.

Чтобы исправить: перейдите к списку точек останова в XCode (View | Navigators | Debug Navigator) и найдите точку останова «Все исключения» - она ​​выглядит так: Exception Breakpoint.

Удалите это и попробуйте код снова.

Другая причина этого сбоя, о котором сообщалось в некоторых местах, заключается в использовании ARC и попытке воспроизвести звук с помощью локально выделенного объекта AVPlayer. Очевидно, с ARC это может привести к очистке плеера до начала воспроизведения.

Решением этой проблемы является сильная привязка к игроку путем присвоения ему ивара, например

@property (nonatomic, retain) currentPlayer;


- (void) playSound {
    AVAudioPlayer *player = [[AVAudioPlayer alloc] init];
    self.currentPlayer = player; // Need the strong reference otherwise next line can fail
    [player play];
}
...