2012-06-25 35 views
3

我在1次之前使用此方法。但现在我无法从此URL直接播放MPMoviePlayerController中的YouTube视频。如何在MPMoviePlayerController中打开Youtube视频并播放它

URL = http://www.youtube.com/watch?v=JPUWNcGDyvM&feature=player_embedded

- (void)viewDidLoad 
{ 

    player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.youtube.com/watch?v=JPUWNcGDyvM&feature=player_embedded"]]]; 

[[NSNotificationCenter defaultCenter] 
addObserver:self 
selector:@selector(movieFinishedCallback:) 
name:MPMoviePlayerPlaybackDidFinishNotification 
object:player]; 

//---play movie--- 
[player prepareToPlay]; 
[player pause]; 

player.view.frame = CGRectMake(0, 0, 320, 367); 

[self.view addSubview:player.view]; 

[super viewDidLoad]; 

}

和我movieFinishedCallback是在...

- (void) movieFinishedCallback:(NSNotification*) aNotification 
{ 
player = [aNotification object]; 
[[NSNotificationCenter defaultCenter] 
removeObserver:self 
name:MPMoviePlayerPlaybackDidFinishNotification 
object:player]; 
} 
+0

http://stackoverflow.com/questions/1779511/play-youtube- videos-with-mpmovieplayercontroller-instead-of-uiwebview/13719715#13719715 –

回答

1

如果可能的话,打开你的URLUIWebview然后拿在类的按钮并将其重定向到WebsiteViewController类可能会有所帮助ü

WebsiteViewController.h /// ----

@interface WebsiteViewController : UIViewController <UIWebViewDelegate> 
{ 
    IBOutlet UIWebView *webView; 
} 

@property(nonatomic,retain) IBOutlet UIWebView *webView; 

WebsiteViewController.m /// ---

-(void)viewDidLoad { 
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:@"url"]; 
[self.webView setScalesPageToFit:YES]; 
[self.webView loadRequest:request]; 
[request release]; 
} 
2

创建一个自定义的UIWebView:请按照指示

1)创建一个名为“YouTubeView.h”的接口.h文件

#import <UIKit/UIKit.h> 

@interface YouTubeView : UIWebView 
{ 
} 

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

@end 

2)中.m文件

#import "YouTubeView.h" 

@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 *youTubeVideoHTML = @"<html><head>\ 
     <body style=\"margin:0\">\ 
     <embed id=\"yt\" src=\"%@\" type=\"application/%@\" \ 
     width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
     </body></html>"; 

     // Populate HTML with the URL and requested frame size 
     NSString *html = [NSString stringWithFormat:youTubeVideoHTML, urlString,strMimeType, frame.size.width, frame.size.height]; 

     // Load the html into the webview 
     [self loadHTMLString:html baseURL:nil]; 
    } 

    return self; 

    } 


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

    @end 

3)导入youtubeview文件中的控制器,你要玩你管视频和创建的UIView像下面

YouTubeView *videoVw = [[YouTubeView alloc] initWithStringAsURL:[NSString 

stringWithFormat:@"%@",strNormalVdoURL] frame:CGRectMake(0,0,320,480) mimeSubType:@"x-shockwave- 

flash"]; 

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

注意:视频只能在设备上播放,因此请检入设备

+0

视频未以横向模式播放 – user578386

相关问题