摘要:最近在使用時(shí)遇到一個(gè)問(wèn)題,那就是在總是報(bào)錯(cuò)報(bào)錯(cuò)除了瀏覽器,其他瀏覽都沒(méi)有報(bào)錯(cuò)。后來(lái)了一下發(fā)現(xiàn)是因?yàn)檎{(diào)用的時(shí)候,音頻文件還沒(méi)有加載完成的問(wèn)題。例子通過(guò)這兩個(gè)例子,我在想用低版本還是不兼容。然而卻被現(xiàn)實(shí)啪啪的打臉。
最近在使用audio時(shí)遇到一個(gè)問(wèn)題,那就是在Chrome DevTools 總是報(bào)錯(cuò):
Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().
or
Uncaught (in promise) DOMException: The play() request was interrupted by a new load request.
報(bào)錯(cuò):
除了google瀏覽器,其他瀏覽都沒(méi)有報(bào)錯(cuò)。 而且雖然報(bào)錯(cuò),其實(shí)還是能正常播放聲音,本來(lái)想就這樣了,但是看到有報(bào)錯(cuò)??傆幸稽c(diǎn)膈應(yīng)。
后來(lái)google了一下 發(fā)現(xiàn)是因?yàn)檎{(diào)用play()的時(shí)候,音頻文件還沒(méi)有加載完成的問(wèn)題。
之前代碼:
知道了是這個(gè)問(wèn)題,那么如何修復(fù)呢?
例子:Autoplay通過(guò)這個(gè)例子已經(jīng)能夠解決問(wèn)題,
但是新的問(wèn)題來(lái)了,promise在低版本的瀏覽器不支持。
Chrome 50才有 video和audio才在play()上面返回了一個(gè)promise;
然后我又看到了這個(gè)例子。
例子2:Fetch & Play通過(guò)這兩個(gè)例子,我在想 用Fetch低版本還是不兼容。于是乎我就想用$.ajax, 因?yàn)樗谋疽獠痪褪且粋€(gè)異步么。先用阿賈克斯請(qǐng)求音頻文件,然后在回調(diào)里面調(diào)用play方法不就可以了么。
然而卻被現(xiàn)實(shí)啪啪的打臉。還是不行 報(bào)同樣的錯(cuò)。說(shuō)明此路不通啊。
沒(méi)辦法我就只能再請(qǐng)教google, 然后我在GitHub上面看到有人這樣說(shuō);
發(fā)現(xiàn)這也可以。于是我就把我的代碼改了一下:
// 播放聲音 function playVoice(src, domId) { var $dom = $("#" + domId) if ($.browser.msie) { // IE用bgsound標(biāo)簽處理聲音 if ($dom.length) { $dom[0].src = src; } else { $("", {src: src, id: domId}).appendTo("body"); } } else { // IE以外的其它瀏覽器用HTML5處理聲音 if ($dom.length) { $dom[0].load(); setTimeout(function() { $dom[0].play(); }, 200); } else { $("
大家一看也就明白了,就是先load,然后異步去調(diào)用play,但是我用0,在我刷新快,頻繁的時(shí)候還是會(huì)報(bào)錯(cuò)、于是我就改成200ms,至于延時(shí)器里面的200ms,我也是自己大概寫了一個(gè)數(shù)字.
以上問(wèn)題暫時(shí)解決。
參考文章:
(https://developers.google.com...
(https://github.com/sampotts/p...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/104087.html
摘要:前端日?qǐng)?bào)精選十問(wèn)幫你理清前端工程師及大前端團(tuán)隊(duì)的成長(zhǎng)問(wèn)題譯讀完細(xì)則之后學(xué)到的件事掘金怎么寫一個(gè)組件庫(kù)一眾成翻譯還有這操作一個(gè)能生成思維導(dǎo)圖的開(kāi)源搜索引擎知乎專欄中文前端推薦第天值得收藏的基礎(chǔ)教程知乎專欄第期沒(méi)有的一天轉(zhuǎn)載中回調(diào)地 2017-06-15 前端日?qǐng)?bào) 精選 十問(wèn)sofish:幫你理清前端工程師及大前端團(tuán)隊(duì)的成長(zhǎng)問(wèn)題![譯] 讀完 flexbox 細(xì)則之后學(xué)到的 11 件事 -...
閱讀 3301·2023-04-26 01:30
閱讀 774·2021-11-08 13:15
閱讀 1909·2021-09-24 10:35
閱讀 1075·2021-09-22 15:41
閱讀 1985·2019-08-30 15:44
閱讀 697·2019-08-30 13:22
閱讀 1074·2019-08-30 13:06
閱讀 1283·2019-08-29 13:22