Closed xx-li closed 2 years ago
如果SuperPlayerView设置startTime,那么快速切换视频会出现如下crash: 报错1:
SuperPlayerView
startTime
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x00007fff6da23470 libsystem_platform.dylib`_platform_strncpy + 64 frame #1: 0x000000010982da85 DTVideo_Example`+[TXDRApi InitReportEvent:withCommandId:withModuleId:withExtInfo:] + 283 frame #2: 0x0000000108eec3dc DTVideo_Example`-[TXVodPlayerStatsCollection reportStartStats] + 181 frame #3: 0x0000000108f39b6b DTVideo_Example`-[TXCVodPlayer onPlayer:event:params:] + 988 frame #4: 0x000000010921c7be DTVideo_Example`-[TXCIJKPlayer playerEvent:description:] + 211 frame #5: 0x0000000110996f2c CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12 frame #6: 0x0000000110996ef2 CoreFoundation`___CFXRegistrationPost_block_invoke + 49 frame #7: 0x0000000110996454 CoreFoundation`_CFXRegistrationPost + 496 frame #8: 0x0000000110995d87 CoreFoundation`_CFXNotificationPost + 806 frame #9: 0x000000010e4419a3 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 82 frame #10: 0x000000010924ffd8 DTVideo_Example`-[TXIJKFFMoviePlayerController postEvent:] + 2980 frame #11: 0x000000010e4b6992 Foundation`__NSThreadPerformPerform + 179 frame #12: 0x00000001109c4e15 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 frame #13: 0x00000001109c4d0d CoreFoundation`__CFRunLoopDoSource0 + 180 frame #14: 0x00000001109c41e2 CoreFoundation`__CFRunLoopDoSources0 + 242 frame #15: 0x00000001109be941 CoreFoundation`__CFRunLoopRun + 875 frame #16: 0x00000001109be0f3 CoreFoundation`CFRunLoopRunSpecific + 567 frame #17: 0x0000000116aa0cd3 GraphicsServices`GSEventRunModal + 139 frame #18: 0x000000011f183f42 UIKitCore`-[UIApplication _run] + 928 frame #19: 0x000000011f188b5e UIKitCore`UIApplicationMain + 101 * frame #20: 0x0000000108e4935f DTVideo_Example`main at AppDelegate.swift:15:7 frame #21: 0x000000010a8d0ee9 dyld_sim`start_sim + 10 frame #22: 0x00000001108994fe dyld`start + 462 0x11e6adb51 <+88>: movq 0xea9f00(%rip), %rsi ; "_run" 0x11e6adb58 <+95>: callq *0xba6dea(%rip) ; (void *)0x000000010bff03c0: objc_msgSend -> 0x11e6adb5e <+101>: leaq 0x821251(%rip), %rdi ; "Application violated contract by causing UIApplicationMain() to return. This incident will be reported." 0x11e6adb65 <+108>: xorl %eax, %eax 0x11e6adb67 <+110>: callq 0x11ed35ddc ; symbol stub for: abort_report_np 最后一行log是: [I][TXVodPlayerStatsCollection.mm, reportStartStats, 252]:VodPlayer reportStartStats
报错2:
Assertion failed: (mp), function qcloud_ijkmp_get_property_int64, file /Users/builder001/workspace/p-269918d528f0429b85c9ac130605cb6e/src/ijkmedia/ijkplayer/ijkplayer.c, line 304.
在播放新视频之前,调用resetPlayer,则基本不会出现crash。
resetPlayer
Installing SuperPlayer (3.4.9) Installing TXLiteAVSDK_Player (9.5.29006)
我这里也出现这个问题了......
确实是是设置了startTime导致的
请使用最新的版本进行测试,此类问题已经修复过
如果
SuperPlayerView
设置startTime
,那么快速切换视频会出现如下crash: 报错1:报错2:
在播放新视频之前,调用
resetPlayer
,则基本不会出现crash。环境如下: