반응형
HTMLMediaElement.play() Return Promise
var Promise = HTMLMediaElement.play();
- HTMLMediaElement.play() 객체는 promise객체를 반환
- 어떤 이유든 재생에 실패했을 경우 reject 발생
- NotAllowedError
- 브라우저에서 미디어 재생이 되지 않는 경우, 보통 사파리 브라우저 정책으로 인해 안되는 경우가 있음.
- NotSupportedError
- MediaSource가 지워되는 포맷으로 만들어지지?표현? 되지 않은 경우, 아무튼 포맷 뭔가 안맞을 때
사용 예
let myVideo = document.getElementById("myVideoElement");
myVideo.play().then(() => {
document.getElementById("statusText").innerHTML = "playing Success";
}).catch((error) => {
document.getElementById("statusText").innerHTML = "Error: " + error;
});
지원 브라우저 & 버전
- 모든 브라우저 환경에서 지원되는 것이 아니므로 주의해야 함
- 지원되지 않을 경우 promise객체가 아닌 undefined 반환
- Firefox: 53 – [Mozilla docs]; [Mozilla Bugzilla]
- 'Chrome for Desktop', 'Chrome for Android', 'Android WebView': 50 – [Mozilla docs]; [Chrome platform status]
- 'Opera', 'Opera for Android': 37 – [Chrome platform status]
- iOS Safari: iOS 10 – [WebKit's new video policies for iOS]
- Desktop Safari: Jun 2017, so maybe v10.1.1 – [Autoplay policy changes for macOS]
참고
- https://stackoverflow.com/questions/41293245/html5-video-play-returning-pending-promises?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
- https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/play
반응형
'HTML5' 카테고리의 다른 글
#크롬 자동재생 정책, Chrome Autoplay Policy (0) | 2018.05.13 |
---|---|
[HTML5] #Video Tag (0) | 2017.10.09 |