2

今日の変な行動に気がつきましたUIWebview

モーダル ビューでを開きUiwebview、ビデオを再生すると。完全なビデオが再生さdismissれるuiwebviewと、もう一度呼び出すとクラッシュします。

ここで注目すべき興味深い点は、この動作はiPad& でのみ正常に動作することiPhoneです。

それが指していたゾンビのデバッグと有効化について

[MPTransportButton _isChargeEnabled]: message sent to deallocated instance 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

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-player」に限定されていることがわかりました。つまり、フラッシュと他のプレーヤーは問題ありませんでした。

このリンクで同じ POC を開こうとすることができますhttp://www.longtailvideo.com/jw-player/。これは jw-player を使用します。

完全なビデオが再生されているときに、view controllerを含むを閉じuiwebviewて再度表示すると、クラッシュにつながります。

4

1 に答える 1

0

次のコードを使用して、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];
于 2013-07-25T06:58:34.770 に答える