HTML5 < video> 태그에 제공된 < source> 태그 중 어느 것도 재생할 수없는 경우 오류를 표시하고 싶습니다.HTML5 비디오 태그로 NETWORK_NO_SOURCE 오류를 잡는 방법
this page on the Mozilla Developer Network에 따르면,로드가 실패 할 때 각 별도의 소스 태그가 자체 오류를 던집니다 때문에 어떤 소스가로드되었는지 확인하려면 video 요소의 networkState 속성을 확인해야합니다.
To detect that all child elements have failed to load, check the value of the media element's networkState attribute. If this is HTMLMediaElement.NETWORK_NO_SOURCE, you know that all the sources failed to load.
하지만 어느 시점에서 networkState를 확인해야합니까? video_tag.load()를 호출 할 때 즉시 확인하면 원본 요소가 유효하고 비디오가 잘 재생 되더라도 networkState가 NETWORK_NO_SOURCE임을 항상 알려줍니다. 따라서 소스 태그가 브라우저에서 시도 될 때까지 기다려야합니다. 에 Loadstart, loadedmetadata, loadeddata (파이어 폭스)에서 다음과 같은 결과를 & 오류 :
-
내가 잘못된 소스 태그 다음과 같은 비디오 요소의 모든 이벤트를 시도
var state = this._video_tag.networkState;
console.log('networkState', state);
if(state == this._video_tag.NETWORK_NO_SOURCE)
{
throw new Error('No valid sources');
}
: 여기
테스트입니다라고하지, 내가 방화범의 비디오 태그를 체크 아웃 경우 networkState 예상대로 NETWORK_NO_SOURCE이다.
비디오 태그를 확인할 때 어떤 이벤트를 사용해야합니까, 아니면 더 나은 방법이 있습니까?
는 e.target.error 비디오 소스 두 요소 정의되지 않는다. :/ – voidstate
@longilong