fix empty transcode segments, widen device profile
This commit is contained in:
@@ -1091,10 +1091,28 @@ export default function PlayerPage() {
|
||||
hls.startLoad()
|
||||
break
|
||||
case HLS.ErrorTypes.MEDIA_ERROR:
|
||||
hls.recoverMediaError()
|
||||
// fragParsingError ("Found no media") means the
|
||||
// transcoder returned an empty segment - usually a
|
||||
// cold-start race. Give it a second and retry from
|
||||
// the current position before doing the heavy
|
||||
// recoverMediaError reset (which causes a visible skip).
|
||||
if (data.details === 'fragParsingError') {
|
||||
const pos = hls.media?.currentTime
|
||||
setTimeout(() => {
|
||||
if (hls.destroyed) return
|
||||
try {
|
||||
hls.loadSource(hls.url)
|
||||
if (pos != null && hls.media) {
|
||||
hls.media.currentTime = pos
|
||||
}
|
||||
hls.startLoad()
|
||||
} catch { hls.recoverMediaError() }
|
||||
}, 1000)
|
||||
} else {
|
||||
hls.recoverMediaError()
|
||||
}
|
||||
break
|
||||
default:
|
||||
// Unrecoverable - destroy and let the user retry
|
||||
hls.destroy()
|
||||
break
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user