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?