To expand on this a bit, LearnDash_watchPlayers relies on ld_video_players being set as it loops through the available players on the page. However, that object is always empty since it only gets populated if the previously mentioned check for a video or iframe tag passes
Hi Martin
A bit late to reply but I can confirm that yes, both of those settings are enabled.
The problem is that LearnDash_watchPlayers javascript function is called only if a video or iframe tag exists within the .ld-video wrapper.
See line 549 of learndash_video_script.js in the LearnDash plugin to see what I mean.
When our page first loads, the .ld-video wrapper only contains an img tag which is the splash image for the video thumbnail. No video or iframe tag so it fails to call watchPlayers. The img tag is only removed and replaced with a video tag once the play button is pressed, but by then the JS has already been executed.