我正在观察AVPlayer的KVO AVPlayerItemNewErrorLogEntryNotification,我发现以下错误:
errorStatusCode:-12645 errorDomain:CoreMediaErrorDomain errorComment:内部错误:重启太远(-1.4084s)
我无法理解以下内容的真正含义。
"内部错误:重启太远"
任何人都可以帮我找到这个问题的根本原因。
答案 0 :(得分:5)
如果很长.ts视频文件响应:-12645。
没有MPMediaPlayer在MPMovieErrorLogEvent类中返回的错误状态代码的文档。 但其中一些是:
HTTP status - errorStatusCode - errorDomain - errorComment
400 -12666 CoreMediaErrorDomain unrecognized http response 400
401 -12937 CoreMediaErrorDomain Authentication Error
402 -12666 CoreMediaErrorDomain unrecognized http response 402
403 -12660 CoreMediaErrorDomain HTTP 403: Forbidden
404 -12938 CoreMediaErrorDomain HTTP 404: File not found
405 -12666 CoreMediaErrorDomain unrecognized http response 405
406 -12666 CoreMediaErrorDomain unrecognized http response 406
407 -12937 CoreMediaErrorDomain Authentication Error
409 -12666 CoreMediaErrorDomain unrecognized http response 409
...
415 -12666 CoreMediaErrorDomain unrecognized http response 415
500 -12666 CoreMediaErrorDomain unrecognized http response 500
501 -12666 CoreMediaErrorDomain unrecognized http response 501
502 -12666 CoreMediaErrorDomain unrecognized http response 502
503 -12661 CoreMediaErrorDomain HTTP 503: Unavailable
504 -12666 CoreMediaErrorDomain unrecognized http response 504
505 -12666 CoreMediaErrorDomain unrecognized http response 505
if long .ts video file respons -12645 CoreMediaErrorDomain No response for media file in 10 s
video .ts file bitrate differ from m3u8 declaration -12318 CoreMediaErrorDomain Segment exceeds specified bandwidth for variant
for live stream.playlist m3u8 did not change too long -12642 CoreMediaErrorDomain Playlist File unchanged for 2 consecutive reads
if wrong host ip -1004 kCFErrorDomainCFNetwork -
if wrong dns host name -1003 kCFErrorDomainCFNetwork -
if bad formatted URL -1000 kCFErrorDomainCFNetwork -
if invalid https/ssl request -1202 kCFErrorDomainCFNetwork -
答案 1 :(得分:3)
根据Apple员工的说法,此错误消息表示:
玩家抱怨它正在尝试重新启动直播, 但只有1.4秒的材料可用。有多少段 在你的直播播放列表?这些天我们建议你总是在 播放列表中至少有六个段。我相信唯一的影响是 延迟palyback,直到它有足够的数据。
来源:https://forums.developer.apple.com/thread/40791
当流式传输直播节目(例如任何电视频道)时,事件数据的可用性与编码器创建媒体片段(.ts)之间会有延迟,然后将其附加到播放列表。
我可以想象,如果playerItem播放头的位置位于缓冲区的最边缘,并且新的媒体片段在服务器上的提供速度不够快,则会生成这些类型的错误。
由于这些错误报告为internal
并且AVPlayer显然从中恢复,因此可以安全地假设它们在内部处理。因此,可以将它们理解为简单的错误报告,并且可以选择忽略它们。
如果想要阻止它们,唯一的方法可能是在几秒钟内手动设置活动缓冲区的边缘。