我有一个应用程序,其中我有一些视频的链接,当用户请求我下载视频文件。下载的视频文件列在UITableView中。该应用程序偶尔崩溃与崩溃日志类似于以下。
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 :(得分:0)
我在我的案例中发现了这个问题。我正在使用thumbnailImageAtTime:timeOption:
似乎在后台播放/暂停视频(这只是我的猜想),以获取缩略图。尽管我没有明确地播放任何视频并导致更多问题,但导致itemPlaybackDidEndNotification
开火。
如果其他人使用相同的方法获取缩略图,现在有几种选择。这里提到了这些方法。 thumbnailImageAtTime: now deprecated - What's the alternative?