Ios UIWebview视频播放崩溃-仅限于HTML格式的jw播放器

Ios UIWebview视频播放崩溃-仅限于HTML格式的jw播放器,ios,objective-c,xcode,ipad,uiwebview,Ios,Objective C,Xcode,Ipad,Uiwebview,今天我注意到UIWebview有一个奇怪的行为 在模式视图中打开Uiwebview并播放视频时。播放完完整的视频后,我们将关闭uiwebview,再次调用它时,我们会遇到崩溃 这里值得注意的一点是,这种行为只存在于iPad&在iPhone中可以正常工作 关于调试和启用它指向的僵尸 [MPTransportButton\u DischargeEnabled]:发送到解除分配实例0x7530930的消息 呼叫方: #import "POCViewController.h" #import "POCW

今天我注意到
UIWebview
有一个奇怪的行为

在模式视图中打开
Uiwebview
并播放视频时。播放完完整的视频后,我们将
关闭
uiwebview
,再次调用它时,我们会遇到崩溃

这里值得注意的一点是,这种行为只存在于
iPad
&在
iPhone
中可以正常工作

关于调试和启用它指向的僵尸

[MPTransportButton\u DischargeEnabled]:发送到解除分配实例0x7530930的消息

呼叫方:

#import "POCViewController.h"
#import "POCWebViewController.h"

@interface POCViewController ()

@end

@implementation POCViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)displayWebview:(id)sender {
    POCWebViewController *objPOCWebViewController = [[POCWebViewController alloc]init];
    [self presentViewController:objPOCWebViewController animated:YES completion:nil];
    [objPOCWebViewController release];
}
@end
包含viewcontroller的
UIWebview

#import "POCWebViewController.h"

@interface POCWebViewController ()

@end

@implementation POCWebViewController
@synthesize webview;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;

}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    NSURL *usl = [NSURL URLWithString:@"Any Youtube url"];
    NSURLRequest *urlReq = [NSURLRequest requestWithURL:usl];
    [webview loadRequest:urlReq];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc {
    if(webview != nil)
    [webview release], webview = nil;
    [super dealloc];
}
- (IBAction)dismissTapped:(id)sender {
    [self dismissViewControllerAnimated:NO completion:nil];
}
@end
你知道我错在哪里吗

编辑1:在使用代码后,我发现缺陷仅限于HTML中使用的“jw播放器”,即flash和其他播放器都很好。

您可以尝试使用此链接打开相同的POC
http://www.longtailvideo.com/jw-player/
。这将使用jw播放器。


播放完整的视频时,如果您关闭包含
uiwebview
视图控制器
&再次显示它,它将导致崩溃。

使用以下代码在web视图中播放视频它对我有用youtube和vimeo视频,如果您有任何疑问,请告诉我

NSString *youTubeID = @"YOUR YOUTUBE ID";
 NSString *embedHTML =[NSString stringWithFormat:@"\
                          <html><head>\
                          <style type=\"text/css\">\
                          body {\
                          background-color: #666666;\
                          padding:%f %f %f %f;\
                          color: blue;\
                          }\
                          </style>\
                          </head><body style=\"margin:0\">\
                          <iframe height=\"%f\" width=\"%f\" title=\"YouTube Video\" class=\"youtube-player\" src=\"http://www.youtube.com/embed/%@\" ></iframe>\
                          </body></html>",paddingTop,paddingRight,paddingBottom,paddingLeft,videoHeight,videoWidth,youTubeID];
[self.webView loadHTMLString:embedHTML baseURL:nil];
NSString*youTubeID=@“您的YOUTUBE ID”;
NSString*embedHTML=[NSString stringWithFormat:@”\
\
\
身体{\
背景色:#666666\
填充:%f%f%f%f\
颜色:蓝色\
}\
\
\
\
“,paddingTop,paddingRight,paddingBottom,paddingLeft,videoHeight,videoWidth,youTubeID];
[self.webView loadHTMLString:EmbedHtmlBaseURL:nil];

我建议您使用YouTubeVideoPlayer。我用它。它工作得很好,不仅仅是播放youtube视频,任何带有嵌入式视频的HTML都是一样的。