2015-07-03 2 views
14

У меня только что появилась авария сообщений, что моя стабильность приложения попала в ад! в основном это авария, которая взорвалась с последним обновлением в iOS (8.4), и в предыдущих версиях она отсутствовала.iOS 8.4 AVFoundation _attachToPlayer или _attachToFigPlayer crash | AVPlayerItem не может быть связан с более чем одним экземпляром AVPlayer

У вас есть идеи, что такое _attachToFigPlayer или что может случиться, что вызывает это? Это происходит в двух приложениях один в Obj-c, а другой в Swift.

Спасибо всем!

Сырье аварии: (_attachToFigPlayer)

Thread : Fatal Exception: NSInvalidArgumentException 
0 CoreFoundation     0x22adafef __exceptionPreprocess 
1 libobjc.A.dylib    0x3141ec8b objc_exception_throw 
2 AVFoundation     0x21575b37 -[AVPlayerItem _attachToPlayer:] 
3 AVFoundation     0x2156a131 -[AVPlayer _attachItem:andPerformOperation:withObject:] 
4 AVFoundation     0x21569347 -[AVPlayer _insertItem:afterItem:] 
5 AVFoundation     0x2158744d -[AVQueuePlayer insertItem:afterItem:] 
6 MediaPlayer     0x24468c7f -[MPQueuePlayer insertItem:afterItem:] 
7 MediaPlayer     0x243e878b -[MPAVQueueCoordinator _syncPlayerItems] 
8 MediaPlayer     0x243e8297 -[MPAVQueueCoordinator _syncItems] 
9 MediaPlayer     0x243e97e5 __60-[MPAVQueueCoordinator _updateQueueDepthWithPausedDuration:]_block_invoke 
10 libdispatch.dylib    0x319af2e3 _dispatch_call_block_and_release 
11 libdispatch.dylib    0x319af2cf _dispatch_client_callout 
12 libdispatch.dylib    0x319b2d2f _dispatch_main_queue_callback_4CF 
13 CoreFoundation     0x22aa0609 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ 
14 CoreFoundation     0x22a9ed09 __CFRunLoopRun 
15 CoreFoundation     0x229eb201 CFRunLoopRunSpecific 
16 CoreFoundation     0x229eb013 CFRunLoopRunInMode 
17 GraphicsServices    0x2a4bc201 GSEventRunModal 
18 UIKit       0x261b7a09 UIApplicationMain 
19 MYAPP       0x000d98b3 main (main.m:32) 
20 libdyld.dylib     0x319d0aaf start 

Сырье аварии: (_attachToFigPlayer)

Thread : Fatal Exception: NSInvalidArgumentException 
    0 CoreFoundation     0x0000000182e602d8 __exceptionPreprocess 
    1 libobjc.A.dylib    0x0000000194ad40e4 objc_exception_throw 
    2 AVFoundation     0x0000000181634b50 -[AVPlayerItem _attachToFigPlayer] 
    3 AVFoundation     0x0000000181627770 -[AVPlayer _attachItem:andPerformOperation:withObject:] 
    4 AVFoundation     0x0000000181648f00 -[AVQueuePlayer insertItem:afterItem:] 
    5 MediaPlayer     0x0000000185251d30 -[MPQueuePlayer insertItem:afterItem:] 
    6 MediaPlayer     0x00000001851bde7c -[MPAVQueueCoordinator _syncPlayerItems] 
    7 MediaPlayer     0x00000001851bd8a4 -[MPAVQueueCoordinator _syncItems] 
    8 MediaPlayer     0x00000001851bf2fc __60-[MPAVQueueCoordinator _updateQueueDepthWithPausedDuration:]_block_invoke 
    9 libdispatch.dylib    0x0000000195151994 _dispatch_call_block_and_release 
    10 libdispatch.dylib    0x0000000195151954 _dispatch_client_callout 
    11 libdispatch.dylib    0x000000019515620c _dispatch_main_queue_callback_4CF 
    12 CoreFoundation     0x0000000182e177f8 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ 
    13 CoreFoundation     0x0000000182e158a0 __CFRunLoopRun 
    14 CoreFoundation     0x0000000182d412d4 CFRunLoopRunSpecific 
    15 GraphicsServices    0x000000018c79f6fc GSEventRunModal 
    16 UIKit       0x000000018793ef40 UIApplicationMain 
    17 MYAPP       0x00000001001c2e44 main (AppDelegate.swift:17) 
    18 libdyld.dylib     0x000000019517ea08 start 

Update:

Это ошибка я получаю в XCode

** * Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «AVPlayerItem может не связаны с более чем одним экземпляром AVPlayer '

+1

По моим сообщениям крешлогам, этот вопрос, кажется, исчезли в iOS 9 без изменения того, как я использую MPMoviePlayerViewController. – 0xced

+0

Благодарим вас за отзыв! –

ответ

3

Хорошо, это похоже на то, что это происходит при использовании MPMoviePlayerViewController и пытается повторно использовать плеер. В моем случае я использовал плеер как подпункт.

По существу, я решил установить NULL плеер и перезапустить его каждый раз, когда буду воспроизводить новое видео.

код: (голый в виду, что я использовал MPMoviePlayerViewController как подвид)

- (void)initPlayer { 

    if (self.player != NULL) { 
     [self.player.view removeFromSuperview]; 
     self.player = NULL; 
    } 
    self.player = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:movie]]; 

    if (IsIPad()) { 
     width = 730; 
     height = 412; 
    } else { 
     width = 320; 
     height = 180; 
    } 

    self.player.view.frame = CGRectMake(0, 61, width, height); 
    self.player.view.hidden = true; 
    self.player.moviePlayer.fullscreen = false; 
    self.player.moviePlayer.controlStyle = MPMovieControlStyleEmbedded; 

    [self.viewController.view addSubview:self.player.view]; 
} 
+0

Продолжайте сбой в iOS 9, но я не могу воспроизвести локально. –

+0

@RomanTruba попробуйте с AVVideoPlayer –

+0

AVPlayer - лучший плеер для воспроизведения видео –

0
if(avPlayer==nil) 
{ 

    avPlayer = [AVPlayer playerWithPlayerItem:_avPlayerItem]; 
}else{ 
    [avPlayer replaceCurrentItemWithPlayerItem:_avPlayerItem]; 

} 

это позволит решить этот тип проблем

 Смежные вопросы

  • Нет связанных вопросов^_^