開發(fā)過程中有頁面通過WKWebView加載的h5頁面弄诲,這個h5頁面會播放視頻,但是我退出這個頁面后視頻還是會繼續(xù)播放還有聲音瞻想。
于是胞枕,將webview置為nil杆煞,發(fā)現(xiàn)還是會后臺播放聲音。
無奈只能在頁面要消失的代碼里控制video的視頻標簽
- (void)viewWillDisappear:(BOOL)animated{
????????[self.webView evaluateJavaScript:@"var videos = document.getElementsByTagName('video');\
? ? ? ? for (var i=0;i < videos.length;i++){\
? ? ? ? ????????videos[i].pause();\
? ? ? ? ????}"completionHandler:^(id_Nullable obj,NSError* _Nullable error) {
????????????NSLog(@"executeJsFunctionError -->%@",error) ;
? ? ? ? }];
}
親測有效
當然之前用的系統(tǒng)的播放器也有這個問題腐泻。
需要調(diào)用播放器的pause方法决乎,在退出頁面方法中
- (void)clickBackBtn {
????????[self.player pause];
????????[self.item cancelPendingSeeks];
????????[self.item.asset cancelLoading];
????????[self.item removeObserver:selfforKeyPath:@"loadedTimeRanges"];
????????[self.item removeObserver:selfforKeyPath:@"status"];
????????self.item =nil;
????????self.player =nil;
????????self.moviePlayerView =nil;
????????if([NSThreadisMainThread]) {
????????????????[self.navigationController popViewControllerAnimated:YES];
????????}else{
????????????????dispatch_async(dispatch_get_main_queue(), ^{
????????????????????????[self.navigationController popViewControllerAnimated:YES];
? ? ? ????????? });
? ? ????}
}