Ios 从UIWebView播放youtube视频在视频启动后崩溃

Ios 从UIWebView播放youtube视频在视频启动后崩溃,ios,objective-c,video,uiwebview,youtube,Ios,Objective C,Video,Uiwebview,Youtube,我的视频播放了2集后崩溃。它给了我线程4 WebThread:EXC_BAD_访问代码=2,地址0x20 我就是这样做的 UIWebView *videoView = [[UIWebView alloc] initWithFrame:CGRectMake(kElementX, kElementY, kElementWidth, 120)]; videoView.backgroundColor = [UIColor clearColor]; videoView.opaque = NO; video

我的视频播放了2集后崩溃。它给了我线程4 WebThread:EXC_BAD_访问代码=2,地址0x20

我就是这样做的

UIWebView *videoView = [[UIWebView alloc] initWithFrame:CGRectMake(kElementX, kElementY, kElementWidth, 120)];
videoView.backgroundColor = [UIColor clearColor];
videoView.opaque = NO;
videoView.scalesPageToFit = YES;
videoView.delegate = self;

[cell.contentView addSubview:videoView];

NSString *videoHTML = [NSString stringWithFormat:@"\
                       <html>\
                       <head>\
                       <style type=\"text/css\">\
                       iframe {position:absolute; top:0%%; margin-top:0px;}\
                       body {background-color:#000; margin:0;}\
                       </style>\
                       </head>\
                       <body>\
                       <div id=\"player\">\
                       <iframe width=\"100%%\" height=\"420px\" src=\"%@\" frameborder=\"0\" allowfullscreen></iframe>\
                       </div>\
                       <script>\
                       var tag = document.createElement('script');\
                       tag.src = \"https://www.youtube.com/iframe_api\";\
                       var firstScriptTag = document.getElementsByTagName('script')[0];\
                       firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\
                       var player;\
                       var myVideoId = document.getElementById('%@')\
                       function onYouTubeIframeAPIReady() {\
                       player = new YT.Player('player', {\
                       height: '100%%',\
                       width: '100%%',\
                       videoId: myVideoId,\
                       events: {\
                       'onReady': onPlayerReady,\
                       'onStateChange': onPlayerStateChange\
                       }\
                       });\
                       }\
                       function onPlayerReady(event) {\
                       event.target.playVideo();\
                       }\
                       function stopVideo() {\
                       player.stopVideo();\
                       }\
                       </script>\
                       </body>\
                       </html>", self.url, self.url];

[self.videoView loadHTMLString:videoHTML baseURL:nil];
[self.videoView setMediaPlaybackAllowsAirPlay:YES];
如果你们需要更多信息,请告诉我。。我尝试了不同的方法,但它不断崩溃我不知道为什么

试试这个:

    NSString *exampleUrlString = @"https://www.youtube.com/embed/2bfP3TZHUzY?wmode=opaque&amp;rel=0&amp;autohide=1&amp;showinfo=0&amp;wmode=transparent";
    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:exampleUrlString]]];
    [cell.contentView addSubview:webView];
更新

别忘了

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //return the webView height
    return 150;
}
你现在看到内马尔了吗


还是有同样的问题,我甚至在我的视图中尝试了你的答案,我觉得这不会有多大区别。那么你的错误就在别的地方了。请参阅更新的屏幕截图。还有一句忠告。当人们试图帮助你而你却不感激时,没有人愿意帮助你。我不认识你,我不需要帮助你,但我确实需要。你说我觉得它不应该有太大的区别..?在viewdidload或tableview上设置它之间不应该有太大的区别这是我从未错过的所有感谢帮助查看更新的屏幕截图,这样你就知道代码可以工作,你的线程4错误来自你在问题中没有提到的其他地方。实际上这是一个错误视频问题,不是你的代码,也不是我的:哈哈
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //return the webView height
    return 150;
}