Many mobile browsers prevent JavaScript from initiating playback of media elements
unless it's in response to user interaction.
It's historically been difficult to detect failed playbacks due to mobile browser
restrictions, but the new
Promise-based
interface to the play() method provides a friendly way of detecting whether
playback succeeded or failed.