關(guān)于 iOS 的 WebView 播放視頻/音頻無(wú)法停止的解決方案

當(dāng)我們的WebView不顯示在最高層的時(shí)候,例如push了一個(gè)新的ViewController或者pop掉了當(dāng)前的ViewController以后,常常我們需要停止音視頻的播放~
比較常見(jiàn)的方法,在需要停止的時(shí)候通過(guò)webview加載一個(gè)空頁(yè)面來(lái)達(dá)到停止播放的效果,代碼如下:

[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];

這種方法簡(jiǎn)單干脆直接了事,在popViewController/dismissViewController的時(shí)候很爽,好使,但是當(dāng)pushViewController/presentViewController以后再返回webview就是一個(gè)大白屏了~

所以我們有了更好的解決方案 先上代碼解解饞:

// 停止視頻播放
[webview stringByEvaluatingJavaScriptFromString:
     @"var videos = document.getElementsByTagName('video');\
     for (var i=0;i < videos.length;i++){\
         videos[i].pause();\
     }"];
// 停止音頻播放
[webview stringByEvaluatingJavaScriptFromString:
     @"var audios = document.getElementsByTagName('media');\
     for (var i=0;i < audios.length;i++){\
         audios[i].pause();\
     }"];

原理:通過(guò)JS直接控制網(wǎng)頁(yè)中的 video/media標(biāo)簽
好了,至此結(jié)束~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容