使用jquery動態修改video標籤source的src不起作用問題解決方案

使用jquery動態修改video標籤source的src不起作用問題解決方案

代碼

//html代碼
 <audio controls="controls" style="margin-top: 10px;" id="audio_bill_music">
<source src="<?= $bill_info['bill_music']; ?>" id="source_bill_music"  type="audio/mpeg">
<embed height="40" width="100" src="http://www.qipa250.com/qipa250.mp3" id="embed_bill_music"></embed>
</audio>

//jquery 代碼
$('#source_bill_music').attr('src', bill_music);
$('#embed_bill_music').attr('src', bill_music);

通過 jQuery 確實是給 source 的 src 賦值成功,從調試來看,瀏覽器並沒有去發起請求去獲得相應的視頻,可以推斷出來的是,當 video 中存在 source 標籤的時候,瀏覽器渲染之後會自動去獲取地址,即便地址改變,
瀏覽器也不會再去獲取地址。但是通過動態的插入 source 標籤的方式,可以觸發瀏覽器進行重排,從而去獲取相應地址的文件進行播放。

解決方案load() 方法重新加載音頻/視頻元素

load() 方法用於在更改來源或其他設置後對音頻/視頻元素進行更新

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>奇葩天地網(www.qipa250.com)</title> 
</head> 
<body>

<video id="qipaVideo" controls autoplay>
	<source id="mp4_src" src="mov_bbb.mp4" type="video/mp4">
  	<source id="ogg_src"  src="mov_bbb.ogg" type="video/ogg">
  	您的瀏覽器不支持 video 標籤。
</video>
<p>點擊按鈕修改視頻資源,並重新加載。</p>
<button onclick="myFunction()">點我</button>
<script>
function myFunction() {
	document.getElementById("mp4_src").src = "movie.mp4";
	document.getElementById("ogg_src").src = "movie.ogg";
	document.getElementById("qipaVideo").load();
}
</script>
<p>視頻由<a href="http://www.qipa250.com/" target="_blank">Big Buck Bunny</a>奇葩</p>

</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章