Toggle the attributes a <video> can carry, then press Reload to rebuild the element and play() to trigger playback. The event log shows what the browser actually did — including iOS's tell-tale fullscreen takeover when playsinline is missing.
playsinline and press play() — the video jumps into the native fullscreen player (you'll see a webkitbeginfullscreen event logged). Re-check it to keep playback inline.
Trên iPhone thật: bỏ playsinline rồi bấm play() — video sẽ nhảy sang trình phát toàn màn hình. Bật lại để phát nội tuyến.
muted + playsinline + autoplay all on. Uncheck muted and Reload — the play() promise rejects with NotAllowedError (logged in red) because unmuted autoplay needs a user gesture.
Autoplay khi tải trang chỉ chạy khi bật cả ba: muted + playsinline + autoplay. Bỏ muted → promise của play() bị từ chối (NotAllowedError).