0

UIWebview我尝试播放任何视频时youtube它崩溃了我的xcode,我使用的是iOS6 ..我只是使用了UIWebview加载url youtube到它...我需要嵌入媒体播放器来播放视频吗?

我还需要做什么才能在 youtube 上播放视频UIWebView

代码

- (void)viewDidLoad
{
[super viewDidLoad];


 NSString *newVersionHTML = @"<html>\
<style>body{padding:0;margin:0;}</style>\
<iframe width=\"%0.0f\" height=\"%0.0f\" src=\"http://www.youtube.com/embed/%@?modestbranding=1;title=;showinfo=0;rel=0;controls=0\" frameborder=\"0\" allowfullscreen></iframe>\
</html>";

  NSString *htmlToLoad = [NSString stringWithFormat:newVersionHTML, webView.frame.size.width, webView.frame.size.height,videoId];
 [webView loadHTMLString:htmlToLoad baseURL:nil];
 webView.delegate = self;
// self.webView.mediaPlaybackRequiresUserAction = NO;


webView=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 1024, 768)];


[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.youtube.com/"]]]];
 [self.view addSubview:webView];

}

新错误

2013-02-13 11:08:20.902 webview[593:c07] [MPAVController] Autoplay: Enabling autoplay
2013-02-13 11:08:20.903 webview[593:c07] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)
2013-02-13 11:08:20.903 webview[593:c07] setting movie path: http://r4---sn-ci5gupcc-cage.c.youtube.com/videoplayback?el=watch&itag=18&cp=U0hVRVdQVF9IU0NONV9PSlhFOl9xb2x5ZzMxX3Zw&sver=3&expire=1360756439&yms=_tpjcd07_wk&signature=0659B5710FD8503E5AA5059CE35A9754DD59B90F.5194D7A1B0EC8749FC91CC1B31261B81950E801E&upn=Y8J9bVD4jLE&newshard=yes&ratebypass=yes&sparams=cp%2Cid%2Cip%2Cipbits%2Citag%2Cratebypass%2Csource%2Cupn%2Cexpire&ipbits=8&source=youtube&id=748bf802989d33fb&app=youtube_mobile&key=yt1&ip=122.179.77.11&fexp=906335%2C901802%2C909917%2C910207%2C914052%2C916613%2C901446%2C920704%2C912806%2C902000%2C922403%2C922405%2C929901%2C913605%2C925710%2C929114%2C925006%2C908529%2C920201%2C911116%2C926403%2C910221%2C901451%2C919114&dnc=1&mt=1360733832&mv=m&ms=au&cpn=dxlJMMz5hJkR_ARd&ptk=Radaantv&oid=bGpsJKyLNbnXo_1YohiEiw&ptchn=RadaanMedia&pltype=content
2013-02-13 11:08:20.904 webview[593:c07] [MPAVController] Autoplay: Enabling autoplay
2013-02-13 11:08:20.908 webview[593:c07] [MPCloudAssetDownloadController] Prioritization requested for media item ID: 0
2013-02-13 11:08:23.974 webview[593:8817]  <0xb057e000> Error '!obj' trying to fetch default input device's sample rate
2013-02-13 11:08:23.974 webview[593:8817]  <0xb057e000> Error getting audio input device sample rate: '!obj'
2  013-02-13 11:08:23.975 webview[593:8817]  <0xb057e000> AQMEIOManager::FindIOUnit: error 'NoHW'
2013-02-13 11:08:23.975 webview[593:c07]  <com.apple.main-thread> AQMEIOManager::FindIOUnit: error 'NoHW'
2013-02-13 11:08:24.567 webview[593:c07]  <com.apple.main-thread> AQMEIOManager::FindIOUnit: error 'NoHW'
2013-02-13 11:08:24.567 webview[593:c07]  <com.apple.main-thread> AQMEIOManager::FindIOUnit: error 'NoHW'
2013-02-13 11:08:24.569 webview[593:c07]  <com.apple.main-thread> AQMEIOManager::FindIOUnit: error 'NoHW'
4

1 回答 1

1

只需在以下代码中传递 youtube 视频的 videoId 即可播放 youtube 视频

例如,如果链接是http://www.youtube.com/watch?v=DTbgpJAggg0&feature=youtube_gdata那么

- (void)viewDidLoad
{
   [super viewDidLoad];

   webView=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 1024, 768)];

   [self.view addSubview:self.webView];

   self.webView.delegate = self;


   NSString *newVersionHTML = @"<html>\
<style>body{padding:0;margin:0;}</style>\
<iframe width=\"%0.0f\" height=\"%0.0f\" src=\"http://www.youtube.com/embed/%@?modestbranding=1;title=;showinfo=0;rel=0;controls=0\" frameborder=\"0\" allowfullscreen></iframe>\
</html>";

    NSString *htmlToLoad = [NSString stringWithFormat:newVersionHTML, self.webView.frame.size.width, self.webView.frame.size.height,videoId];
    [self.webView loadHTMLString:htmlToLoad baseURL:nil];

}

只需在 webview 中使用 OPEN youtube 主页:

在 .h 中:

@property (nonatomic, retain) UIWebView *webView;

在 .m 中:

- (void)viewDidLoad
{
    [super viewDidLoad];

    _webView=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 1024, 768)];

    [self.view addSubview:self.webView];

    self.webView.delegate = self;


    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.youtube.com/"]]]];

}
于 2013-02-13T05:31:37.380 回答