0

我有一個應用程序,其中有一些視頻的鏈接,並在用戶請求時下載視頻文件。下載的視頻文件列在UITableView中。應用程序偶爾會崩潰,類似於以下的崩潰日誌。MPAVController pauseWithFadeout導致應用程序崩潰

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Subtype: KERN_INVALID_ADDRESS at 0x6000000c 
Triggered by Thread: 0 

Thread 0 Crashed: 
0 libobjc.A.dylib     0x3a03fb26 objc_msgSend + 6 
1 MediaPlayer      0x30ba3ff0 -[MPAVController _setState:] + 288 
2 MediaPlayer      0x30b97f1a -[MPAVController pauseWithFadeout:] + 198 
3 MediaPlayer      0x30b9cd22 -[MPAVController _itemPlaybackDidEndNotification:] + 786 
4 CoreFoundation     0x2f90011e __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 10 
5 CoreFoundation     0x2f874312 _CFXNotificationPost + 1714 
6 AVFoundation     0x2e780b6e __avplayeritem_fpItemNotificationCallback_block_invoke + 4094 
7 libdispatch.dylib    0x3a527d78 _dispatch_call_block_and_release + 8 
8 libdispatch.dylib    0x3a527d64 _dispatch_client_callout + 20 
9 libdispatch.dylib    0x3a52e7bc _dispatch_main_queue_callback_4CF$VARIANT$mp + 264 
10 CoreFoundation     0x2f90881c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 4 
11 CoreFoundation     0x2f9070f0 __CFRunLoopRun + 1296 
12 CoreFoundation     0x2f871ce2 CFRunLoopRunSpecific + 518 
13 CoreFoundation     0x2f871ac6 CFRunLoopRunInMode + 102 
14 GraphicsServices    0x3455f27e GSEventRunModal + 134 
15 UIKit       0x32113a3c UIApplicationMain + 1132 
16 MyApp       0x000e5884 main (main.m:30) 
17 libdyld.dylib     0x3a54cab4 start + 0 

問題是沒有我自己的方法顯示在日誌中失敗。所有調用似乎都是庫方法調用。另外我想知道爲什麼_itemPlaybackDidEndNotification:是因爲我甚至沒有播放視頻時遇到此問題而被調用的。 有人可以幫忙嗎?

+0

在16,它說MyApp。這是你的應用程序嗎?如果是這樣,你需要象徵性的。 – yeesterbunny

+0

@yeesterbunny我重新將日誌符號化。您所指的電話是對主電話的呼叫。 – zambrey

+0

你有沒有試過播放導致電腦崩潰的視頻文件,看它是否損壞? – RyanR

回答

0

我發現這個問題在我的情況。我正在使用thumbnailImageAtTime:timeOption:,它似乎在後臺播放/暫停視頻(這只是我的猜想),以獲得它的縮略圖。儘管我沒有明確播放任何視頻並導致進一步的問題,但這導致了itemPlaybackDidEndNotification的觸發。

如果有人使用相同的方法獲取縮略圖,現在有幾種選擇。這裏提到的方法。 thumbnailImageAtTime: now deprecated - What's the alternative?