當(dāng)我們使用 webview 展示網(wǎng)頁時,頁面內(nèi)若含有音頻標(biāo)簽,點擊播放,這時關(guān)閉帶有 webview 的 VC,會發(fā)現(xiàn)即使 webview 已經(jīng)被釋放,音頻還是沒有停止。這時可以采用比較快捷的方法來做到 webview 被關(guān)閉時停止正在播放的音頻:webview 重新 load 頁面,或者執(zhí)行停止音頻播放的 JavaScript 語句。
這里以 UIWebview 舉例,WKWebview 同理。
方法一:重新 load 一個空白頁面
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
方法二:手動執(zhí)行停止音頻的 JavaScript 語句
[self.webView stringByEvaluatingJavaScriptFromString:@"audioPause()"];
當(dāng)然,這兩種方法都是比較簡便但不優(yōu)雅的實現(xiàn)方式,適合輕度使用 webview 的場景。如果你們對于 webview 做了比較多的加工,是可以監(jiān)聽 webview 中的音頻、視頻任務(wù),來手動停止的。