Skip to content

Commit 22b4356

Browse files
Sbussisoclaude
andcommitted
Remove broken native HLS fallback, require HLS.js support
Native <video> HLS (old Safari) can't send auth headers, so streams silently fail with 401. Modern Safari supports HLS.js via MSE. Show a clear error for unsupported browsers instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent d3e0778 commit 22b4356

1 file changed

Lines changed: 1 addition & 17 deletions

File tree

frontend/src/components/HlsPlayer.jsx

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -182,18 +182,8 @@ function HlsPlayer({ cameraId, cameraName }) {
182182
}
183183
}
184184
})
185-
} else if (video.canPlayType("application/vnd.apple.mpegurl")) {
186-
video.src = playlistUrl
187-
const onLoadedMetadata = () => {
188-
setLoading(false)
189-
setIsLive(true)
190-
video.play().catch(() => { })
191-
}
192-
video.addEventListener("loadedmetadata", onLoadedMetadata)
193-
// Store for cleanup
194-
video._hlsMetadataHandler = onLoadedMetadata
195185
} else {
196-
setError("HLS is not supported in this browser")
186+
setError("Your browser does not support HLS streaming. Please use a modern browser (Chrome, Firefox, Edge, or Safari 13+).")
197187
setLoading(false)
198188
}
199189
} catch (err) {
@@ -215,12 +205,6 @@ function HlsPlayer({ cameraId, cameraName }) {
215205
hlsRef.current.destroy()
216206
hlsRef.current = null
217207
}
218-
// Clean up native HLS event listener (Safari fallback)
219-
const vid = videoRef.current
220-
if (vid && vid._hlsMetadataHandler) {
221-
vid.removeEventListener("loadedmetadata", vid._hlsMetadataHandler)
222-
delete vid._hlsMetadataHandler
223-
}
224208
}
225209
}, [cameraId, getToken])
226210

0 commit comments

Comments
 (0)