2012-02-27 2 views
0

обновлениеiPhone - играть Youtube видео на UIWebView

Я загрузил его на GitHub, ссылка https://github.com/ThinkChris/YouTubeDemo/blob/master/tabtest/FirstViewController.m

Требование является:

  1. приложение (на основе tabviewcontroller) привычка быть повернутым
  2. встроенное видео youtube должно попасть в полноэкранный режим в портретном режиме
  3. полноэкранные видео можно вращать (портрет и пейзаж)

Привет народ У меня есть два блока кодов для встраивания видео на Youtube в UIWebView, я заметил, что эффекты разные. не все ли они MPMoviePlayerController? почему есть разница?

код 1: видео начинается в портретной полноэкранном режиме, вращение ограничено ViewController (видео не может быть retated, если viewcontroll не может сделать это)

- (void)addYouTubeVideoWebView:(NSString*)url frame:(CGRect)frame 
{ 
    // iframe 
    url = @"http://www.youtube.com/embed/IQGhq0IlVok"; 
    NSString* embedHTML = @"\ 
    <html>\ 
     <body style=\"margin:0\">\ 
      // HERERRRRRRRRRRRRRRRRRRRRRRRRRR 
      <iframe src=\"%@?showinfo=0\" width=\"%0.0f\" height=\"%0.0f\" frameborder=\"0\"></iframe>\ 
     </body>\ 
    </html>\ 
    "; 

    NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height]; 

    UIWebView * webView = [[UIWebView alloc] initWithFrame:frame]; 
    [webView loadHTMLString:html baseURL:nil]; 
    [self.view addSubview:webView]; 
} 

код 2: запуск в ландшафтном полноэкранном режиме, могут вращаться в любом направлении сам

- (void)addYouTubeVideoWebView:(NSString*)url frame:(CGRect)frame 
{ 
    // embed 
    url = @"http://www.youtube.com/watch?v=IQGhq0IlVok"; 
    NSString* embedHTML = @"\ 
    <html>\ 
     <body style=\"margin:0\">\ 
      // HERERRRRRRRRRRRRRRRRRRRRRRRRRR 
      <embed type=\"application/x-shockwave-flash\" src=\"%@\" width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
     </body>\ 
    </html>\ 
    "; 

    NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height]; 

    UIWebView * webView = [[UIWebView alloc] initWithFrame:frame]; 
    [webView loadHTMLString:html baseURL:nil]; 
    [self.view addSubview:webView]; 
} 

ответ

1

Использование iframe встраивает HTML-документ внутри HTML-документа. Но поскольку ваш iframe не содержит допустимый HTML-документ (только URL-адрес), я предполагаю, что браузер не имеет достаточной информации о вашем iframe и не может решить, можно ли его воспроизвести в ландшафте (почему бы вроде этого, я не знаю, это просто догадка).

  • попробуйте установить ширину и высоту для вашего фрейма или
  • попробуйте использовать полный HTML код для версии встраивания в версии Iframe:

    <html>\ 
        <body style='margin:0'>\ 
        <iframe width'%0.0f' height='%0.0f' frameborder='0'> 
         <html>\ 
         <body style='margin:0'>\ 
          <embed type='application/x-shockwave-flash' src='%@' width='%0.0f' height='%0.0f'></embed>\ 
         </body>\ 
         </html>\ 
        </iframe>\ 
        </body>\ 
    </html>\"; 
    
+0

Спасибо @teriiehina, для советы и коды, но выше код не может работать, большой палец youtube не отображается. – ThinkChris

+1

Хорошо, мой плохой, должен был протестировать перед отправкой. И что произойдет, если вы дадите ширину и высоту для вашего iframe? (Я нахожусь в коммутировании, я расскажу об этом глубже, когда приеду в свой офис) – teriiehina

+1

Большое вам спасибо, я загрузил его в github, а также обновил вопрос. пожалуйста, посмотрите – ThinkChris

Смежные вопросы