나는 이것을 오랫동안 연구 해왔고 같은 일을하려고 노력하고 있기 때문에 이것이 다른 누군가를 도울 것입니다. 나는 crossbrowsertesting.com을 사용하고 문자 그대로 사람에게 알려진 거의 모든 브라우저에서 이것을 테스트했습니다. 내가 가지고있는 솔루션은 현재 Opera, Chrome, Firefox 3.5 이상, IE8 이상, iPhone 3GS, iPhone 4, iPhone 4s, iPhone 5, iPhone 5s, iPad 1 이상, Android 2.3 이상, Windows Phone 8에서 작동합니다.
동적으로 변화하는 소스
비디오를 동적으로 변경하는 것은 매우 어렵고 Flash 폴백을 원하면 DOM / 페이지에서 비디오를 제거했다가 다시 추가하여 Flash가 Flash vars에 대한 동적 업데이트를 인식하지 못하므로 Flash가 업데이트되도록해야합니다. JavaScript를 사용하여 동적으로 변경하려는 경우 모든 <source>
요소를 완전히 제거하고 JavaScript에서 또는 첫 번째 지원되는 비디오 유형 canPlayType
을 설정하는 데 사용 하고 플래시 var mp4를 동적으로 업데이트하는 것을 잊지 마십시오. 또한 일부 브라우저는를 호출하지 않으면 소스를 변경 한 것으로 등록하지 않습니다 . 먼저 전화로 문제를 해결할 수 있다고 생각합니다.src
break
return
video.load()
.load()
video.pause()
. 비디오 요소를 제거하고 추가하면 제거 된 비디오를 계속 버퍼링하므로 브라우저 속도가 느려질 수 있지만 해결 방법이 있습니다.
크로스 브라우저 지원
실제 크로스 브라우저 부분까지 Video For Everybody 에도 도착했습니다 . 이미 MediaelementJS Wordpress 플러그인을 사용해 보았는데 해결 된 것보다 훨씬 많은 문제가 발생했습니다. 문제는 실제로 라이브러리가 아닌 Wordpress 플러그인으로 인한 것으로 의심됩니다. 가능한 경우 JavaScript없이 작동하는 것을 찾으려고합니다. 지금까지 내가 생각해 낸 것은이 일반 HTML입니다.
<video width="300" height="150" controls="controls" poster="http://sandbox.thewikies.com/vfe-generator/images/big-buck-bunny_poster.jpg" class="responsive">
<source src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.ogv" type="video/ogg" />
<source src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" type="video/mp4" />
<source src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.webm" type="video/webm" />
<source src="http://alex-watson.net/wp-content/uploads/2014/07/big_buck_bunny.iphone.mp4" type="video/mp4" />
<source src="http://alex-watson.net/wp-content/uploads/2014/07/big_buck_bunny.iphone3g.mp4" type="video/mp4" />
<object type="application/x-shockwave-flash" data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" width="561" height="297">
<param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" />
<param name="allowFullScreen" value="true" />
<param name="wmode" value="transparent" />
<param name="flashVars" value="config={'playlist':['http://sandbox.thewikies.com/vfe-generator/images/big-buck-bunny_poster.jpg',{'url':'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4','autoPlay':false}]}" />
<img alt="No Video" src="http://sandbox.thewikies.com/vfe-generator/images/big-buck-bunny_poster.jpg" width="561" height="297" title="No video playback capabilities, please download the video below" />
</object>
<strong>Download video:</strong> <a href="video.mp4">MP4 format</a> | <a href="video.ogv">Ogg format</a> | <a href="video.webm">WebM format</a>
</video>
중요 사항 :
<source>
Mac OS Firefox가 MP4를 처음 만나면 비디오 재생을 중단하기 때문에 ogg를 처음으로 넣었습니다 <source>
.
- 올바른 MIME 유형은 중요하다 .ogv 파일이 있어야한다
video/ogg
, 하지 video/ogv
- HD 비디오를 사용하는 경우 HD 품질의 OGG 파일에서 찾은 최고의 트랜스 코더는 Firefogg입니다
- 이
.iphone.mp4
파일은 iPhone 4+ 용 이며 H.264 Baseline 3 비디오 및 AAC 오디오가있는 MPEG-4 비디오 만 재생합니다. 해당 형식에 대해 찾은 최고의 트랜스 코더는 핸드 브레이크입니다 .iPhone & iPod Touch 사전 설정을 사용하면 iPhone 4 이상에서 작동하지만 iPhone 3GS가 작동하려면으로 추가 한 해상도가 훨씬 낮은 iPod 사전 설정 을 사용해야합니다 video.iphone3g.mp4
.
- 앞으로는 요소
media
에 대한 속성 을 사용하여 <source>
미디어 쿼리로 모바일 장치를 타겟팅 할 수 있지만 현재는 이전 Apple 및 Android 장치가이를 충분히 지원하지 않습니다.
편집 :
- 나는 아직도 모두를 위해 비디오를 사용하고 있지만, 지금은 멋진있는 플래시 대체, 제어 할 있으며, Flowplayer를 사용으로 전환 한 자바 스크립트 API 를 제어 할 수 있습니다.