javascript - 通過(guò)jquery動(dòng)態(tài)的設(shè)置video src的值無(wú)法播放視頻?
問(wèn)題描述
<p id='video-box'> <video controls> <source src='http://www.baoyu77737.com/wenda/3141.html'> </video></p><a href='javascript:;' src='http://www.w3school.com.cn/i/movie.mp4'>點(diǎn)擊</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();});
demo在這里https://jsfiddle.net/r9u1cn7o/作一個(gè)通過(guò)點(diǎn)擊不同的標(biāo)簽彈出彈框播放相應(yīng)的視屏,但是通過(guò)jquery成功的給src賦值了,但是不知道為什么播放不了?
問(wèn)題解答
回答1:通過(guò) jQuery 確實(shí)是給 source 的 src 賦值成功,從調(diào)試來(lái)看,瀏覽器并沒有去發(fā)起請(qǐng)求去獲得相應(yīng)的視頻,而只是單純的將 a 標(biāo)簽的 src 中的值賦值給 source 了。
但是如果這么做,瀏覽器就會(huì)去請(qǐng)求地址獲得視頻文件:
$('.dj').on('click', function() { var src = $(this).data('src'), sourceDom = $('<source src='http://www.baoyu77737.com/wenda/3141.html'+ src +''>'); $('#video-box video').append(sourceDom); $('#video-box').show(); // 自動(dòng)播放 $('#video-box video')[0].play()});
因此,可以推斷出來(lái)的是,當(dāng) video 中存在 source 標(biāo)簽的時(shí)候,瀏覽器渲染之后會(huì)自動(dòng)去獲取地址,即便地址改變,瀏覽器也不會(huì)再去獲取地址。但是通過(guò)動(dòng)態(tài)的插入 source 標(biāo)簽的方式,可以觸發(fā)瀏覽器進(jìn)行重排,從而去獲取相應(yīng)地址的文件進(jìn)行播放。
回答2:<video> <source src='http://www.baoyu77737.com/wenda/xxx.mp4'/> <source src='http://www.baoyu77737.com/wenda/xxx.ogg'/></video>
source 里的 src 只會(huì)在渲染的時(shí)候被 check 一次.要?jiǎng)討B(tài)調(diào)整 src , 你應(yīng)該從 video 入手, 改成這樣應(yīng)該就沒問(wèn)題了$('#video-box video').prop('src',src)
回答3:別用source標(biāo)簽,直接寫到video標(biāo)簽里;另外用attr()吧。還有就是video標(biāo)簽的width和height別寫到style里,拿出來(lái)~
回答4:jsfidle不能嵌入視頻. 換到本地就好了
回答5:video標(biāo)簽支持的視頻格式有(1)H.264編碼的mp4文件(2)webm(3)ogg 其他后綴的文件因?yàn)閷@葐?wèn)題暫時(shí)不支持,可以考慮轉(zhuǎn)碼試試
回答6:加個(gè)play()事件就好了
相關(guān)文章:
1. angular.js - $stateChangeSuccess事件在狀態(tài)跳轉(zhuǎn)的時(shí)候不執(zhí)行?2. 如何解決docker宿主機(jī)無(wú)法訪問(wèn)容器中的服務(wù)?3. python - Scrapy存在內(nèi)存泄漏的問(wèn)題。4. java - 三位二進(jìn)制表示8進(jìn)制,四位二進(jìn)制表示16進(jìn)制,那么多少二進(jìn)制表示10進(jìn)制呢?5. 如何用筆記本上的apache做微信開發(fā)的服務(wù)器6. javascript - 螞蟻金服里的react Modal方法,是怎么把元素插入到頁(yè)面最后的7. CSS3 畫如下圖形8. android - rxjava merge 返回Object對(duì)象數(shù)據(jù)如何緩存9. java如何生成token?10. angular.js - ionic2 瀏覽器跨域問(wèn)題
