Проблема встраивания YouTube видео на iPhone - PullRequest
2 голосов
/ 28 февраля 2011

Я пытаюсь вставить видео со следующим кодом, чтобы избежать запуска приложения YouTube и остаться в моем приложении:

-(void)embedYouTube:(NSString*)url frame:(CGRect)frame {  

 NSString* embedHTML = @"<iframe type=\"text/html\" width=\"64\" height=\"39\" src=\"http://www.youtube.com/embed/j8Bc7eRTdWY\" frameborder=\"0\"></iframe>";
    if(videoView == nil) {          
        videoView = [[UIWebView alloc] initWithFrame:frame];  
        [movieDescView addSubview:videoView];  
    }  
    [videoView loadHTMLString:embedHTML baseURL:nil];  
}

Проблема заключается в том, что при нажатии на значок воспроизведения открывается YouTubeвеб-сайт с моим uiwebview с просьбой установить какое-то веб-приложение.Я бы хотел, чтобы это веб-приложение не отображалось или не показывало видео в полноэкранном режиме.На самом деле, любое решение для показа видео на YouTube без выхода из моего приложения подойдет.

Ответы [ 5 ]

4 голосов
/ 03 марта 2011

Вы можете использовать это для загрузки фильма (нет необходимости генерировать html-строку):

movieView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 140, 100)];
movieView.delegate = self;
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.youtube.com/embed/-h4zTEwgCpQ"]];
[movieView loadRequest:request];
[self.view addSubview:movieView];


#pragma mark -
#pragma mark UIWebViewDelegate
//To check if youtube try to show the overview page of m.youtube.com or the current movie
//if the user click on the youtube logo this method stop loading the mobile page
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSURL *urlRequest = [request URL];

    if ([[urlRequest absoluteString] isEqualToString:url]) {
        return YES;
    }

    return NO;
}

Единственное, что вам нужно искать, это использовать ссылку "вставлять".

2 голосов
/ 28 февраля 2011
UIWebView  *wbView = (UIWebView *)[self.view viewWithTag:1];
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, 64.0, 64.0];
    [wbView loadHTMLString:html baseURL:nil];

  "url" is your video url
0 голосов
/ 19 марта 2013

Я потратил довольно много времени на просмотр библиотек и старых фрагментов кода;у меня эта библиотека работала:

https://github.com/larcus94/LBYouTubeView

0 голосов
/ 04 июля 2012

Советы:

stringUrl = [stringUrl stringByReplacingOccurrencesOfString:@"/watch?v=" withString:@"/embed/"];

, где stringUrl - это видео-ссылка на YouTube (например, Youtube )

0 голосов
/ 28 февраля 2011

Вы не используете embed, если пытаетесь воспроизвести видео.Просто используйте обычный URL-адрес видео, чтобы он открывался в приложении YouTube для iPhone, а не в Интернете.Если он откроется в Интернете, он попросит установить его веб-приложение.

Вам необходимо изменить свой HTML-код на следующий:

<a href="http://www.youtube.com/watch?v=j8Bc7eRTdWY">Play Video</a>

Или запустить его непосредственно в собственном приложении, используяURL:

http://www.youtube.com/watch?v=j8Bc7eRTdWY

Дополнительная справочная информация:

Ссылка Apple на схемы URL

Ссылка Apple на ссылки на Youtube

...