>我有一个应用程序,其中我有一些视频的链接,当用户要求时,我会下载视频文件。下载的视频文件列在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:
会被调用。有人可以帮忙吗?
我在我的情况下发现了这个问题。我正在使用似乎在后台播放/暂停视频的thumbnailImageAtTime:timeOption:
(这只是我的猜想)来获取它的缩略图。这导致itemPlaybackDidEndNotification
触发,尽管我没有明确播放任何视频并导致进一步的问题。
如果其他人使用相同的方法来获取缩略图,现在有几种选择。此处提到了这些方法。thumbnailImageAtTime:现已弃用 - 还有什么替代方案?