
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
media-play-enabler
Advanced tools
Enables video play programmatically on modern browsers that require user input events
Enables video play programmatically on modern browsers that require user input events
On most mobile device browsers, calling video.play() is only allowed from inside gesture events such as onclick or touchend.
iOS Safari, iOS Chrome
On most desktop modern browsers, calling video.play() is only allowed after the user has done any explicit interaction with the DOM, such as click or mousedown somewhere at least once.
Events such as mouseover are not enough.
Desktop Chrome >= 66, Android Chrome, Windows Edge
On these browsers, calling video.play() works without any interaction only if the video is either muted or the video does not have an audio track.
iOS Safari, iOS Chrome
On the rest, it doesn't work even without audio.
Desktop Chrome, Android Chrome, Windows Edge
touchstart or a desktop mousedown event to document in order to enable the first video.play() of a blank video.video source, not the video element..canPlay() to receive a promise to know if a video can be played..videoElement.play(), .videoElement.pause() to control the video and .videoElement.src = 'movie.mp4' to change videos.npm install media-play-enabler
import { MediaPlayEnabler } from 'media-play-enabler'
// Set the parent element for injecting 
mediaPlayEnabler.parentElement = document.getElementById('insert-video')
mediaPlayEnabler.canPlay().then((isPlayable) => {
    if (isPlayable) {
        // Change movies by changing the source
        mediaPlayEnabler.videoElement.src = 'movie1.mp4'
        mediaPlayEnabler.videoElement.play()
        mediaPlayEnabler.videoElement.src = 'movie2.mp4'
        mediaPlayEnabler.videoElement.play()
        mediaPlayEnabler.videoElement.src = 'movie3.mp4'
        mediaPlayEnabler.videoElement.play()
    } else {
        // Tell user to touch the screen
    }
})
See API Docs
FAQs
Enables video play programmatically on modern browsers that require user input events
We found that media-play-enabler demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.