iPhone - Воспроизведение Youtube видео от UIWebView - PullRequest
0 голосов
/ 27 февраля 2012

обновление

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

Требование:

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

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

код 1: видео начинается в портретном полноэкранном режиме, вращение ограничено viewcontroller (видео не может быть восстановлено, если 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 Ответ

1 голос
/ 27 февраля 2012

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

  • попробуйте установить ширину и высоту для вашего 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>\";
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...