1. 程式人生 > >H5 通過jquery動態的設定video src的值無法播放視訊?

H5 通過jquery動態的設定video src的值無法播放視訊?

通過jquery動態的設定video src的值無法播放視訊?參考連結:h5 動態更改連結

<div id="video-box">
 <video style="object-fit: fill;width: 200px;height: 50px;" controls>
    <source src="">
  </video>
</div>
<a class="dj" href="javascript:;" data-src="http://www.w3school.com.cn/i/movie.mp4">點選</a> 
*{padding:0;margin:0;}
#video-box{display:none;}
$(".dj").on("click", function() {
   var src = $(this).data("src");
   $("#video-box source").prop("src",src)
   $("#video-box").show();
});
答案如下:
通過 jQuery 確實是給 source 的 src 賦值成功,從除錯來看,瀏覽器並沒有去發起請求去獲得相應的視訊,
而只是單純的將 a 標籤的 data-src 中的值賦值給 source 了。
但是如果這麼做,瀏覽器就會去請求地址獲得視訊檔案:
$(".dj").on("click", function() {
   var src = $(this).data("src"),
       sourceDom = $("<source src=\""+ src +"\">");
       
   $("#video-box video").append(sourceDom);
   $("#video-box").show();
   
   // 自動播放
   $("#video-box video")[0].play()
});
因此,可以推斷出來的是,當 video 中存在 source 標籤的時候,瀏覽器渲染之後會自動去獲取地址,即便地址改變,
瀏覽器也不會再去獲取地址。但是通過動態的插入 source 標籤的方式,可以觸發瀏覽器進行重排,從而去獲取相應地址的檔案進行播放。


******************************分割線*********2018年5月24日14:52:58*********************************
    上面那個方法,經測試,只能上傳一次的時候是有效果的,如果要替換多次視訊地址,就會顯示第一次的視訊,還有有一點問題,

可以使用如下方式修改視訊的播放地址,參考連結:https://bbs.csdn.net/topics/392007814

	<div class="thumbImage" id="video-box" style="display: none;">
	<!-- <img src="/allone-openaccount/resources/images/videoopen.png" id="image_people"/> -->
	<video id="videoid" width="280" height="188" controls="controls" autoplay="autoplay">
	   <!-- <source src="/i/movie.ogg" type="video/ogg" /> -->
	  <source id="video_path" src="" type="video/mp4" />
	  <!--  <source src="/i/movie.webm" type="video/webm" />
	   <object data="/i/movie.mp4" width="320" height="240"> -->
	   <embed width="320" height="240" src="/i/movie.swf" />
		<!--  </object> -->
	</video>
						</div>

 var videoSrc = data.videoUrl;//新的視訊播放地址
 document.getElementById("videoid").src=videoSrc ;
 document.getElementById("videoid").play();


相關推薦

H5 通過jquery動態設定video src無法播放視訊

通過jquery動態的設定video src的值無法播放視訊?參考連結:h5 動態更改連結<div id="video-box"> <video style="object-fit: fill;width: 200px;height: 50px;" con

通過jquery動態設定下拉框select的選中option

雖然簡單,但是用得比較少,自己按照select的選中原理,直接擼出來,然後做出跟百度出來的結果對比了一下,發現百度出來的東西太繁瑣了,效果實現了,但是本著程式碼要簡潔的心,我還是用了自己的方法,記錄一下結構如下:<select>    <option cla

如果通過jQuery 動態設定 radio 的選項

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery.min.js" type

react中使用antdesign中form元件,動態設定Input的

問題: 在使用Antdesign的form元件時,通過initialValue來設定Input的值,在form未驗證之前,可以通過initialValue來對input賦值,但是form驗證之後,雖然state中存在值,但是不能在input中顯示,form也不能再次提交,程式碼如下所示:

Android 自定義橫向進度條(可動態設定最大

自定義橫向進度條       主佈局檔案中包 含          <LinearLayout android:id="@+id/linearlayout" android:layout_width="match_parent" androi

通過attr 動態設定CheckBox的checked屬性,會出現第二次設定cheked屬性不起作用的情況

                出現該問題時就要了解一下jquery利用attr、prop方法的區別在jquery中應該使用prop方法來獲取和設定checked屬性,不應該使用attr,需要的朋友可以參考下。1、prop方法獲取、設定checked屬性<input type="checkbox" na

radio通過Jq動態設定checked屬性無效,radio未選中

在做網站後臺應用程式的時候,遇到這麼一個問題,通過Jq動態設定radio的checked屬性,居然無效,各種糾結,各種納悶,於是乎各種百度,各種問問提問,最後在瀏覽其他帖子的時候,終於被我發現解決問題的辦法拉,那個心情賊拉的好呀 在我搜索的過程的過程的,發現網上大多

通過attr(,)動態設定CheckBox的checked屬性,會出現第二次設定cheked屬性不起作用的情況

出現該問題時就要了解一下jquery利用attr、prop方法的區別 在jquery中應該使用prop方法來獲取和設定checked屬性,不應該使用attr,需要的朋友可以參考下。 1、prop方法獲取、設定checked屬性 <input type="che

通過javascript動態改變按鈕的

實現功能:點選按鈕時讓按鈕的值在兩種狀態之間切換<input name="sh1" type="button" id="sh1" value="中 止 發 布 信 息" onclick="chkinfo(this.value);"/>   <SCRIPT LANGUAGE="JavaScr

Javascript/jQuery動態修改radio/checkbox

HTML程式碼: <input name="name1" type="radio" value="1" checked="checked" />1 <input name="name1" type="radio" value="0" />0 Jav

通過attr 動態設定CheckBox的checked屬性,會出現第二次設定cheked屬性不起作用的情況

                轉載自:http://blog.csdn.net/xiaouncle/article/detail

React 中setState({key:value}) key 動態變化,如何動態設定key的

state = { visible1: false, visible2: false, visible3: false } onShow = (key) => { this.setState({ key: true

jquery獲取img的src

 簡簡單單的一句話,如下: <img id="test" src="1.jpg" alt="test" /> 引用的jquery如下: <script type="text/javascript" language="javascript" src="~/Js/jquery-1.2.6.j

解決Jquery動態給表格賦時空格後面的內容不顯示的問題

如果從資料庫讀取的資料為A001 002 003,由於沒有給資料加引號,並且會自動給A001加引號,結果就變成了 "A001" 002 003,所以我們在前端看到的資料只有A001 <input value="+data[i]['FName']+" /> 現

c++builder上使用TIDTCPServer和TIDTCPClient進行簡單通訊,如何通過程式碼動態設定TIDTCPServer的Bindings屬性。

 這兩天老大讓我實現一個簡單功能就是通過程式碼動態設定TIDTCPServer的Bindings屬性,剛開始我覺得這個問題So Easy,但是做著做著總是出現同樣一個錯誤不知道為什,這個問題一直糾結了我兩天時間終於在今天早上得以解決,在此同大家分享一下在這個過程中我是如何解

jQuery動態設定樣式(style、css)

一、jQuery設定css樣式 <div style="background-color:#ffffff;padding-left:10px;">測試jQuery動態獲取padding-

動態設定video的寬高的方法,js設定和CSS設定

一、csss設定 html: <div class="wrap"> <video controls="controls" class="videoBox" #iframe

c# 通過反射動態為物件賦 通用方法

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Configuration; using System.Data; using

js+jquery動態設定/增加/刪除/獲取元素屬性的兩種方法集錦對比(動態onclick屬性設定+動態title設定)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140/strict.dtd"> <html> <head>

關於HTML5中Video標簽無法播放mp4的解決辦法

src 無法 配置 type get 測試 不同的 alt mage 1、首先先排除掉代碼問題、路徑問題、瀏覽器不支持問題等常規問題,這些問題另行百度。 <video width="500px" height="300px" autoplay="autopl