因公司需求,要做一個掃描語音播報的功能,所以用到一些音頻/視頻標簽 考慮到 <embed> 標簽對於ie的相容性更好一些所以,我在這採用了 <embed> 標簽,在使用中遇到的一些問題和處理方法,如有不對的地方和可以改進的地方歡迎指教 問題1:在使用<embed> 標簽使用中發現在其屬性autopl ...
因公司需求,要做一個掃描語音播報的功能,所以用到一些音頻/視頻標簽
考慮到 <embed> 標簽對於ie的相容性更好一些所以,我在這採用了 <embed> 標簽,在使用中遇到的一些問題和處理方法,如有不對的地方和可以改進的地方歡迎指教
問題1:在使用<embed> 標簽使用中發現在其屬性autoplay和Loop屬性在谷歌內核的瀏覽器下
<embed id="devUnknown" src="'+_src+'" width="0" height="0" loop="false" autostart="true"/>是未能控制音頻就緒後是否播放,在谷歌內核瀏覽器中即使autostart='false'音頻仍然會自動播放
在網上有人提供出一種說在谷歌下autostart="0"或"1"可替代true跟false但我測試過發現然並卵,在谷歌下併發生變化,後續還根據網上遇到這個問題的小伙伴提供的方法發現並未適用,所以最後下麵方法代替
1 <audio hidden="true" autoplay="true" loop="true"> 2 <source id="devUnknown" src="https://www.toonies.cn/Public/static/mp3/unsale.mp3" type="audio/ogg"> 3 <source src="https://www.toonies.cn/Public/static/mp3/unsale.mp3" type="audio/mpeg"> 4 您的瀏覽器不支持 audio 元素。 5 </audio>
2.<embed/>無法檢測到音頻/視頻是否播放結束,同時如果我中途更換了<embed/>標簽的src也會導致<embed/>不能再次進行播放,在w3c內和網上找了一段時間發現並沒有直接再次啟動的辦法(火狐下可以做到更換src後切換音頻/視頻內容),則採用了下麵的方法代替
1 function voice(_src){ 2 /*_src為音頻要播放的路徑*/ 3 var _html = '<embed id="devUnknown" src="'+_src+'" width="0" height="0" loop="false" autostart="true"/>'; 4 if($('embed').attr('id')=='devUnknown'){ 5 //二次啟動時刪除原來的embed 6 $('embed').remove(); 7 } 8 $('body').append(_html); 9 };