问题:开发中使用webview播放视频,当视频播放到中间的时候?然后退出点击按钮退出webview,视频继续播放,如何处理?
解决办法:1. 让webview调用一个about:blank的url。就可以停止视频播放。
//或者点击pop 方法中调用
- (void) viewDidDisappear:(BOOL)animated
{
NLog(@"媒体打开窗口被隐藏"); [webViewer loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]];
}
可以自行测试,打开网页看视频,中途退出弹出webview,视频可以停止播放。
NOTE: about:blank 打开应该空白网页。
2.页面退出的时候,直接暂停播放,调用js代码。
//暂停视频播放
[self.webView stringByEvaluatingJavaScriptFromString:
@"var videos = document.getElementsByTagName('video');\
for(var i = 0; i < videos.length;i++) {\
videos[i].pause();\
}"];
//暂停音频播放
[self.webView stringByEvaluatingJavaScriptFromString:
@"var audios = document.getElementsByTagName('audio');\
for(int i = 0; i < audios.lenght;i++) {\
audios[i].pause();\
}"];
NOTE:获取对应标签数组元素的字符串,如 [object HTMLVideoElement]视频标签<video/>
NSString *jsString = @"document.getElementsByTagName('video')[0].toString()";
使用建议:
1.到底使用哪个,如果你需要在当前网页播放音视频,同时又可以跳到其他页面(非返回),可以在当前网页退出时,暂停音视频播放,而不是打开应该空白页面。
2.当webView.allowsInlineMediaPlayback = NO;打开一个新的页面播放视频,代码内部调用了pop方法,如果也需要此刻退出视频,可以通过about:blank
关闭当前视频。
网友评论