Bunu bir süredir araştırıyorum ve aynı şeyi yapmaya çalışıyorum, umarım bu başka birine yardımcı olacaktır. Crossbrowsertesting.com kullanıyorum ve kelimenin tam anlamıyla bunu insan tarafından bilinen hemen hemen her tarayıcıda test ediyorum. Şu anda aldığım çözüm Opera, Chrome, Firefox 3.5+, IE8 +, iPhone 3GS, iPhone 4, iPhone 4s, iPhone 5, iPhone 5s, iPad 1+, Android 2.3+, Windows Phone 8'de çalışıyor.
Dinamik Olarak Değişen Kaynaklar
Videonun dinamik olarak değiştirilmesi çok zordur ve bir Flash yedeği istiyorsanız, videoyu DOM / sayfadan kaldırmanız ve Flash'ın dinamik güncellemeleri fark etmeyeceği için Flash'ın güncellenmesi için yeniden eklemeniz gerekir. Dinamik değiştirmek için JavaScript kullanmak için gidiyoruz, ben tamamen kaldırmak istiyorum <source>
unsurları ve sadece kullanmak canPlayType
ayarlamak için src
JavaScript ve break
ya return
ilk desteklenen video türünden sonra ve dinamik flaş var mp4 güncellemek için unutma. Ayrıca, arama yapmadığınız sürece bazı tarayıcılar kaynağı değiştirdiğinizi kaydetmez video.load()
. Soruna inanıyorum.load()
ilk arayarak çözülebileceğinevideo.pause()
. Video öğelerini kaldırmak ve eklemek, kaldırılan videoyu arabelleğe almaya devam ettiği için tarayıcıyı yavaşlatabilir, ancak bir geçici çözüm vardır .
Çapraz Tarayıcı Desteği
Gerçek çapraz tarayıcı kısmına gelince, Video For Everybody'a da geldim . Çözdüğünden çok daha fazla soruna neden olduğu ortaya çıkan MediaelementJS Wordpress eklentisini zaten denedim. Sorunların aslında kütüphane değil Wordpress eklentisinden kaynaklandığından şüpheleniyorum. Mümkünse JavaScript olmadan çalışan bir şey bulmaya çalışıyorum. Şimdiye kadar, bu kadar basit bir HTML buldum:
<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>
Önemli notlar :
<source>
Mac OS Firefox, ilk olarak bir MP4 ile karşılaşırsa videoyu oynatmayı denemediği için ogg'u ilk olarak koydu <source>
.
- Doğru MIME türleri önemlidir .ogv dosyaları olmalıdır
video/ogg
, değil video/ogv
- HD videonuz varsa, HD kalitesinde OGG dosyaları için bulduğum en iyi kod dönüştürücüsü Firefogg
.iphone.mp4
Dosya iPhone 4 için hangi olacak sadece H.264 Temel 3 Video ve AAC ses ile MPEG-4 videoları oynatmak. Bu format için bulduğum en iyi kodlayıcı Handbrake, iPhone ve iPod Touch ön ayarını kullanmak iPhone 4+ üzerinde çalışacak, ancak iPhone 3GS'nin çalışmasını sağlamak için eklediğim çok daha düşük çözünürlüğe sahip iPod ön ayarını kullanmanız gerekiyor video.iphone3g.mp4
.
- Gelecekte , medya sorguları olan mobil cihazları hedeflemek
media
için <source>
öğeler üzerinde bir özellik kullanabileceğiz , ancak şu anda eski Apple ve Android cihazlar bunu yeterince desteklemiyor.
Düzenle :
- Hala Herkes İçin Video kullanıyorum, ancak şimdi FlowPlayer'ı kullanmaya geçiş yaptım, kontrol etmek için kullanılabilecek harika bir JavaScript API'sı olan Flash yedeklemeyi kontrol etmek için.