我正在尝试在 webView 中播放 youtube 嵌入视频,当我未设置委托时它会播放,并且如果我设置委托视频不会加载,并且委托方法也不会被调用。这是我的代码:
.m class
#import "EmbeddedVideoVC.h"
@interface EmbeddedVideoVC (){
MBProgressHUD *hud;
}
//@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (weak, nonatomic) IBOutlet UIView *viewSelf;
@property (strong, nonatomic) NSTimer *controllersTimer;
@property (assign, nonatomic) NSInteger controllersTimeoutPeriod;
@end
@implementation EmbeddedVideoVC
- (void)viewDidLoad {
[super viewDidLoad];
self.view.transform = CGAffineTransformMakeRotation(M_PI/2);
}
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
CGRect bounds = [[UIScreen mainScreen] bounds];
if ([SharedAppManager sharedInstance].applicationFrame.size.height < 568) {
bounds = CGRectMake(0, 0, 480, 320);
}
_videoWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0,bounds.size.height, bounds.size.width)];
[_videoWebView setAllowsInlineMediaPlayback:YES];
[_videoWebView setMediaPlaybackRequiresUserAction:NO];
[self.viewSelf addSubview:_videoWebView];
hud = [MBProgressHUD showHUDAddedTo:_videoWebView animated:YES];
hud.color = [UIColor clearColor];
hud.activityIndicatorColor = [UIColor whiteColor];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapMethod)];
[tap setNumberOfTapsRequired:1]; // Set your own number here
[tap setDelegate:self]; // Add the <UIGestureRecognizerDelegate> protocol
[_videoWebView addGestureRecognizer:tap];
_videoWebView.delegate= self;
[_videoWebView loadHTMLString:self.embeddedCode baseURL:nil];
[self hideControllers];
}
-(void)didTapMethod{
//Showing Controls
}
#pragma mark - WEBVIEW DELEGATES
- (void)webViewDidStartLoad:(UIWebView *)webView{
[MBProgressHUD hideHUDForView:self.videoWebView animated:YES];
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
[MBProgressHUD hideHUDForView:self.videoWebView animated:YES];
}
-(void)webViewDidFinishLoad:(UIWebView *)webView {
[MBProgressHUD hideHUDForView:self.videoWebView animated:YES];
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
-(void)hideControllers {
[UIView animateWithDuration:0.5f animations:^{
dispatch_async(dispatch_get_main_queue(), ^{
topView.hidden= YES;
});
} completion:^(BOOL finished){
}];
}
-(void) showControles {
}
@end
.h class
#import "MusicParentVC.h"
@interface EmbeddedVideoVC : MusicParentVC <UIGestureRecognizerDelegate, UIWebViewDelegate>
@property (strong, nonatomic) NSString *embeddedCode;
@property (nonatomic, strong) UIWebView *videoWebView;
@end
谁能告诉我问题是什么以及为什么 webViewDidFinishLoad: 和其他委托方法没有被调用,甚至嵌入代码没有在 webview 中加载?