Video標籤播放視頻?谷歌瀏覽器?safari?? 谷歌瀏覽器播放不了mp4格式的視頻的緣由

webm格式和mp4格式,判斷了瀏覽器可否支持的視頻類型後,給了一個if判斷,若是是支持mp4格式,就返回視頻後綴mp4,若是是webm,就返回後綴webm。結果,在谷歌瀏覽器中播放不了,爲何我指定源爲webm格式的視頻時,谷歌瀏覽器毫無錯誤的播放了,可是,若是是使用if判斷,發現選擇的是mp4,而不是webm,咋辦?web

先來看看這兩段代碼,差異只是順序上的。chrome

/*************************************獲取視頻格式***************************/ function getFormatExtension(){ if( video.canPlayType("video/webm") !=""){ //針對谷歌瀏覽器 return ".webm"; }else if( video.canPlayType("video/mp4") !=""  ){ //針對safari瀏覽器 return ".mp4"; } }

 

/*************************************獲取視頻格式***************************/

function getFormatExtension(){
    if( video.canPlayType("video/mp4") !=""){                                                    //針對谷歌瀏覽器
        return ".mp4";
    }else if( video.canPlayType("video/webm") !="" ){                                           //針對safari瀏覽器
        return ".webm";
    }
}
結果:在谷歌瀏覽器中不能正常播放。

下面咱們來看一張各個瀏覽器對video元素支持的三種視頻格式的狀況表:瀏覽器

咱們能夠看到,ide

一、chrome既支持mp4格式也支持webm格式。可是火狐和谷歌瀏覽器都會優先選擇mp4格式(實踐證實的)。編碼

2.此時當這裏的mp4格式的視頻播放不了時,就出現了我遇到的狀況,例如:在獲取中會顯示視頻被破壞。因此仍是建議把瀏覽器選擇webm格式的代碼寫在前面,mp4的寫在後面,爲了讓它先選擇webm格式的視頻,或者用程序中的判斷也能夠。spa

如今來講說爲何谷歌播放不了mp4格式的視頻的緣由??.net

這是谷歌搜索後學到的內容,又有進步了,哈哈。code

緣由:orm

Chrome瀏覽器支持HTML5,它只是支持原生播放部分的MP4格式。MP4視頻格式,在我寫這篇筆記時,我也覺得mp4格式就是後綴爲.mp4,其實不是,MP4自己不是一種簡單的視頻格式,它是一個包裝視頻和音頻格式的殼,裏面的視頻音頻的編碼格式使用什麼編碼方式是可變的。MP4視頻有兩種編碼方式,Divx和H264,but,Chrome支持H264。因而我上面的例子中,瀏覽器看到有MP4後綴的文件,使用原生HTML5視頻播放,後來卻發現視頻格式沒法解碼,因而,Chrome沒法播放視頻。FF估計也是相似的緣由。視頻

 

 

有時間能夠看看這個   http://my.oschina.net/maomi/blog/144086

相關文章
相關標籤/搜索