Играйте видео YouTube с MPMoviePlayerController вместо UIWebView

Давайте посмотрим, могу ли я придумать хромую аналогию...

"Мне не нужна крестообразная отвертка. Я несу плоскую головку и шлифовальный станок!"

Отклоняющие без обсуждения представления будут причинять боль длительный срок. Для одного легче отладить и изменить единственное определение представления, чем это должно поставить измененный код.

89
задан ROMANIA_engineer 26 November 2017 в 10:36
поделиться

2 ответа

Единственный способ воспроизвести видео с YouTube внутри вашего собственного приложения - это создать UIWebView с тегом embed из Youtube для фильма, который вы хотите воспроизвести как Контент UIWebView . UIWebView обнаружит, что внедренный объект является ссылкой на Youtube, а содержимое веб-представления будет предварительным просмотром YouTube для видео. Когда пользователь щелкает предварительный просмотр, видео будет отображаться в MPMoviePlayerController. Это метод, описанный по ссылке, предоставленной Muxecoid (, как воспроизводить видео с YouTube в приложении ), и это (насколько мне известно) единственный способ воспроизвести видео с YouTube в заявление. Вы по-прежнему можете запустить приложение Youtube, передав URL-адрес YouTube на - [UIApplication openURL:] ,

78
ответ дан 24 November 2019 в 07:19
поделиться

Если вы используете Код:

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {  
     NSString* embedHTML = @"\ 
        <html><head>\ 
     <style type=\"text/css\">\ 
     body {\ 
     background-color: transparent;\ 
     color: white;\ 
    }\ 
   </style>\ 
    </head><body style=\"margin:0\">\ 
       <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ 
    width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
       </body></html>";  
   NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];  
   if(videoView == nil) {  
      videoView = [[UIWebView alloc] initWithFrame:frame];  
     [self.view addSubview:videoView];  
    }  
    [videoView loadHTMLString:html baseURL:nil];  
  }

Источник:

Просто обратитесь к этой ссылке

Убедитесь, что вы тестируете его на устройстве, а не на симуляторе. Поскольку симулятор всегда будет отображать знак вопроса с синей рамкой (в нем нет проигрывателя быстрого времени).

26
ответ дан 24 November 2019 в 07:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: