如何在UIWebView中暂停媒体播放

时间:2012-07-24 22:17:35

标签: javascript objective-c ios uiwebview media-player

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:8)

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

例如,你可以这样做:

[webview stringByEvaluatingJavaScriptFromString: @"document.querySelector('video').pause();"]

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

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