Tôi đã nghiên cứu điều này trong một thời gian và tôi đang cố gắng làm điều tương tự, vì vậy hy vọng điều này sẽ giúp người khác. Tôi đã sử dụng crossbrowsertesting.com và nghĩa đen kiểm tra điều này trong hầu như mọi trình duyệt được biết đến với con người. Giải pháp mà tôi hiện đang làm việc trong Opera, Chrome, Firefox 3.5+, IE8 +, iPhone 3GS, iPhone 4, iPhone 4s, iPhone 5, iPhone 5s, iPad 1+, Android 2.3+, Windows Phone 8.
Nguồn thay đổi động
Tự động thay đổi video rất khó và với dự phòng Flash, bạn sẽ phải xóa video khỏi DOM/trang và thêm lại video để Flash sẽ cập nhật vì Flash sẽ không nhận ra động cập nhật cho Flash vars. Nếu bạn định sử dụng JavaScript để thay đổi động, tôi sẽ xóa hoàn toàn tất cả các phần tử <source>
và chỉ sử dụng canPlayType
để đặt src
trong JavaScript và break
hoặc return
sau loại video được hỗ trợ đầu tiên và không quên tự động cập nhật flash var mp4. Ngoài ra, một số trình duyệt sẽ không đăng ký mà bạn đã thay đổi nguồn trừ khi bạn gọi video.load()
. Tôi tin rằng vấn đề với .load()
bạn đang gặp phải có thể được khắc phục bằng cách gọi điện thoại số video.pause()
trước tiên. Việc xóa và thêm yếu tố video có thể làm chậm trình duyệt vì nó tiếp tục lưu vào bộ đệm video bị xóa, nhưng there's a workaround.
Cross-trình duyệt hỗ trợ
Theo như phần qua trình duyệt thực tế, tôi đến Video For Everybody là tốt. Tôi đã thử các plugin MediaelementJS Wordpress, mà hóa ra để gây ra rất nhiều vấn đề hơn nó giải quyết. Tôi nghi ngờ các vấn đề là do trình cắm thêm Wordpress và không phải là thư viện thực sự. Tôi đang cố gắng tìm một cái gì đó hoạt động mà không cần JavaScript, nếu có thể. Cho đến nay, những gì tôi đã đưa ra là HTML này đơn giản:
<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>
Ghi chú quan trọng:
- Đã kết thúc đặt ogg như
<source>
đầu tiên vì Mac OS Firefox bỏ cố gắng để chơi video nếu nó gặp MP4 dưới dạng <source>
đầu tiên.
- Các loại MIME chính xác là quan trọng .ogv file nên
video/ogg
, khôngvideo/ogv
- Nếu bạn có video HD, chuyển mã tốt nhất mà tôi đã tìm thấy cho các tập tin OGG chất lượng HD là Firefogg
- File
.iphone.mp4
là dành cho iPhone 4+ mà sẽ chỉ phát video MPEG-4 với âm thanh H.264 Baseline 3 Video và AAC. Bộ chuyển mã tốt nhất tôi tìm thấy cho định dạng đó là Handbrake, sử dụng cài đặt trước iPhone & Cài đặt iPod Touch sẽ hoạt động trên iPhone 4+, nhưng để iPhone 3GS hoạt động, bạn cần sử dụng cài đặt trước iPod có độ phân giải thấp hơn nhiều được thêm dưới dạng video.iphone3g.mp4
.
- Trong tương lai, chúng tôi sẽ có thể sử dụng thuộc tính
media
trên các yếu tố <source>
để nhắm mục tiêu thiết bị di động có truy vấn phương tiện nhưng hiện tại các thiết bị Apple và Android cũ hơn không hỗ trợ đủ.
Nguồn
2014-07-19 02:16:51
Có định dạng video được dự định là chuẩn trong tương lai cho html5 không? –
Nếu Apple hỗ trợ định dạng WebM nó có thể xảy ra trong tương lai gần vì tôi tin rằng IE9 hiện hỗ trợ WebM nhưng rất nghi ngờ họ sẽ làm điều đó khi chúng được gắn chặt với định dạng H264 độc quyền. –