當(dāng)我們的WebView不顯示在最高層的時候诅病,例如push了一個新的ViewController或者pop掉了當(dāng)前的ViewController以后说庭,常常我們需要停止音視頻的播放~
比較常見的方法仅乓,在需要停止的時候通過webview加載一個空頁面來達到停止播放的效果陵究,代碼如下:
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
這種方法簡單干脆直接了事喘沿,在popViewController/dismissViewController的時候很爽骂蓖,好使腐晾,但是當(dāng)pushViewController/presentViewController以后再返回webview就是一個大白屏了~
所以我們有了更好的解決方案 先上代碼解解饞:
// 停止視頻播放
[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();\
}"];
原理:通過JS直接控制網(wǎng)頁中的 video/media標(biāo)簽
好了叉弦,至此結(jié)束~