2015-07-03 11 views
14

Tôi vừa nhận được một mẫu tin nhắn crashlytics rằng sự ổn định ứng dụng của tôi đã đi vào địa ngục! về cơ bản đây là vụ tai nạn phát nổ với bản cập nhật cuối cùng trong iOS (8.4), và nó không tồn tại trong các phiên bản trước.iOS 8.4 AVFoundation _attachToPlayer hoặc _attachToFigPlayer bị lỗi | Một AVPlayerItem không thể được liên kết với nhiều hơn một trường hợp của AVPlayer

Bạn có biết ý tưởng gì về _attachToFigPlayer hoặc những gì có thể xảy ra đang gây ra điều này? Nó xảy ra trong hai ứng dụng một trong Obj-c và một ứng dụng khác trong Swift.

Cảm ơn tất cả!

liệu tai nạn: (_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 

liệu tai nạn: (_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 

Cập nhật:

Đây là lỗi tôi nhận được trong XCode

** * Chấm dứt ứng dụng do ngoại lệ uncaught 'NSInvalidArgumentException', lý do: 'Một AVPlayerItem có thể không được liên kết với nhiều hơn một trường hợp của AVPlayer '

+1

Theo báo cáo nhật ký sụp đổ của tôi, vấn đề này dường như đã biến mất trong iOS 9 mà không thay đổi cách tôi sử dụng MPMoviePlayerViewController. – 0xced

+0

Cảm ơn bạn đã phản hồi! –

Trả lời

3

Ok, nó đường nối điều này xảy ra khi sử dụng MPMoviePlayerViewController và cố gắng tái sử dụng trình phát. Trong trường hợp của tôi, tôi đã sử dụng máy nghe nhạc như một subview.

Về cơ bản, bản sửa lỗi của tôi là đặt NULL trình phát và khởi động lại mỗi khi tôi phát một video mới.

Code: (trống trong tâm trí mà tôi đã sử dụng MPMoviePlayerViewController như là một subview)

- (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

Tiếp tục gặp sự cố trong iOS 9, nhưng tôi không thể tái tạo cục bộ. –

+0

@RomanTruba thử với AVVideoPlayer –

+0

AVPlayer là trình phát tốt nhất để phát video –

0
if(avPlayer==nil) 
{ 

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

} 

này sẽ giải quyết kiểu này của các vấn đề

Các vấn đề liên quan