iOS WebView播放视频、音频退出时停止播放

2018-10-29  本文已影响0人  似奔跑的野马

问题:开发中使用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关闭当前视频。

上一篇下一篇

猜你喜欢

热点阅读