如何在UIWebView中暂停媒体播放

Stu*_*ner 3 javascript objective-c uiwebview media-player ios

我目前正在开发支持iPad上多个标签的浏览器.问题是iOS不允许多个标签同时播放音频/视频,尝试这会导致出现问题,例如所有音频停止而不回来.

我注意到谷歌浏览器的浏览器实际上停止了处于非活动状态的选项卡中的媒体.我想知道他们是怎么做的.我知道可以通过[webView loadRequest:NSURLRequestWithString(@"about:blank")];语句完全停止媒体,但这会导致页面显示空白屏幕.我想暂停媒体.

我可以执行一些javascript来阻止UIWebView中的媒体吗?如果是这样,它会是什么样子(我之前从未接触过javascript)?

提前致谢!

Tor*_*ter 8

既然你可以做到,[webView stringByEvaluatingJavaScriptFromString:]那就是她简单的方法.

例如,你可以这样做:

[webview stringByEvaluatingJavaScriptFromString: @"document.querySelector('video').pause();"]
Run Code Online (Sandbox Code Playgroud)

当然,这只会停止第一个视频,因此在iPad上,脚本需要更复杂一些,并遍历页面上的所有视频.

var videos = document.querySelectorAll("video");
for (var i = videos.length - 1; i >= 0; i--){
        videos[i].pause();
};
Run Code Online (Sandbox Code Playgroud)