在应用程序中查看YouTube视频,并返回到先前的ViewControlloer
问题描述:
我正在尝试在我的应用中整合一个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;
}
请帮忙。
答
我不太确定我的方法是否适用于您的方法,因为我在视频播放时隐藏了视图。用户按完成按钮后,电影控制器将退出并显示视图。
- (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;
}
你能做些什么让用户不必按下完成按钮吗?电影完成时的含义就像完成按钮。 – Idan 2012-07-19 09:19:35