2012-07-17 172 views
0

我正在尝试在我的应用中整合一个YouTube视频。但是当视频结束时,我希望它恢复到调用viewController。我几乎成功地实现了这一点,但以我的方式,用户必须先按完成按钮,然后才能返回到原始ViewController。在应用程序中查看YouTube视频,并返回到先前的ViewControlloer

这是我使用的代码,请帮忙,我更喜欢参考完整的代码或代码示例。

YouTubeView.h:

#import <UIKit/UIKit.h> 

@interface YouTubeView : UIWebView 
{ 
} 

- (YouTubeView *)initWithStringAsURL:(NSString *)urlString frame:(CGRect)frame mimeSubType:(NSString *)mimeType; 
@end 

YouTubeView.m:

#import "YouTubeView.h" 

@interface YouTubeView() 

@end 

@implementation YouTubeView 


- (YouTubeView *)initWithStringAsURL:(NSString *)urlString frame:(CGRect)frame mimeSubType:(NSString *)mimeType 
{ 
NSString *strMimeType; 

if([mimeType length]>0) 
{ 
    strMimeType = mimeType; 
} 

else 
{ 
    strMimeType [email protected]"x-shockwave-flash"; //@"x-shockwave-mp4"; 
} 

if (self = [super init]) 
{ 
    // Create webview with requested frame size 
    self = [[UIWebView alloc] initWithFrame:frame]; 

    // HTML to embed YouTube video 

    NSString *videoHTML = [NSString stringWithFormat:@"\ 
       <html>\ 
       <head>\ 
       <style type=\"text/css\">\ 
       iframe {position:absolute; top:50%%; margin-top:-130px;}\ 
       body {background-color:#000; margin:0;}\ 
       </style>\ 
       </head>\ 
       <body>\ 
       <iframe width=\"100%%\" height=\"240px\" src=\"%@\" frameborder=\"0\" allowfullscreen></iframe>\ 
       </body>\ 
       </html>", urlString]; 

    [self loadHTMLString:videoHTML baseURL:nil]; 

} 

return self; 

} 


- (void)dealloc 
{ 
[super dealloc]; 
} 

@end 

而且指向*对主视图控制器按钮: - (IBAction为)runTestVideo:(ID)发送{

NSString *strNormalVdoURL = [NSString stringWithFormat:@"http://www.youtube.com/embed/TgLqH9n57B0"]; 

YouTubeView *videoVw = [[YouTubeView alloc] initWithStringAsURL:[NSString stringWithFormat:@"%@",strNormalVdoURL] frame:CGRectMake(0,0,315,420) mimeSubType:@"x-shockwave-flash"]; 

         [self.view addSubview:videoVw]; 
         [videoVw release]; 
         videoVw = nil; 

} 

请帮忙。

回答

0

我不太确定我的方法是否适用于您的方法,因为我在视频播放时隐藏了视图。用户按完成按钮后,电影控制器将退出并显示视图。

- (void)viewDidLoad { 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector (MPMoviePlayerDidExitFullScreen;) name:MPMoviePlayerDidExitFullscreenNotification object:nil]; 
} 

- (void)MPMoviePlayerDidExitFullScreen:(NSNotification *)notification { 
[[NSNotificationCenter defaultCenter] removeObserver:self name: MPMoviePlayerDidExitFullscreenNotification object:nil]; 

[movieController stop]; 
[movieController.view removeFromSuperview]; 

view.hidden = NO; 
} 
+0

你能做些什么让用户不必按下完成按钮吗?电影完成时的含义就像完成按钮。 – Idan 2012-07-19 09:19:35

相关问题