Воспроизвести видео с YouTube в приложении для iPhone без использования UIWebView? - PullRequest
30 голосов
/ 30 января 2012

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

[self playVideo:@"http://www.youtube.com/watch?v=WL2l_Q1AR_Q" frame:CGRectMake(20, 70, 280, 250)];

- (void)playVideo:(NSString *)urlString 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, urlString, frame.size.width, frame.size.height];
    UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];
    [videoView loadHTMLString:html baseURL:nil];
    [self.view addSubview:videoView];
    [videoView release];
    NSLog(@"%@",html);
}

Но этот код не работает для меня.А также я пробовал с MPMoviePlayerController код:

NSURL *fileURL = [NSURL URLWithString:@"http://www.youtube.com/watch?v=WL2l_Q1AR_Q"];
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 
[moviePlayerController.view setFrame:CGRectMake(0, 70, 320, 270)]; 
[self.view addSubview:moviePlayerController.view];  
moviePlayerController.fullscreen = YES;  
[moviePlayerController play];

Это также не работает для меня.Может кто-нибудь сказать мне, где я сделал не так, и предложить мне какие-либо идеи?Я хочу воспроизводить видео на YouTube в MPMoviewPlayerController, а не в UIWebView.Заранее спасибо.

Ответы [ 5 ]

10 голосов
/ 06 февраля 2014

Просто используйте XCDYouTubeVideoPlayerViewController .Он плавно добавляет видео YouTube в ваше приложение без необходимости UIWebView.

. Он использует прогрессивную загрузку фреймворков + MoviePlayer и AVFoundation.Просто предоставьте ему видео ID на YouTube, и все готово.

Он поддерживает как полноэкранный, так и не полноэкранный режим и РАБОТАЕТ НА ИМИТАТОРЕ iOS !!!

Пример:

XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:@"9bZkp7q19f0"];
[self presentMoviePlayerViewControllerAnimated:videoPlayerViewController];
8 голосов
/ 19 августа 2014

Теперь доступен класс YTPlayerView с API данных YouTube (v3) .

Посмотрите на Использование библиотеки помощников YouTube для встраивания видео YouTube вваше iOS-приложение

В нем содержатся подробные инструкции по установке вспомогательной библиотеки и включению YTPlayerView в вашу раскадровку.

7 голосов
/ 30 января 2012

Mr.Yuvaraj.M Ваш код указан правильно. Пожалуйста, запустите проект на вашем устройстве iPhone / iPod touch. Видео YouTube может не поддерживать / не работать в симуляторе. Пожалуйста, проверьте это. Спасибо.

1 голос
/ 18 ноября 2018

Воспроизведение видео на YouTube в Swift 4.1

Добавить Pod 'XCDYouTubeKit'

импорт XCDYouTubeKit в ViewController

func playYoutubeVideo(){

let strUrl = "https://www.youtube.com/watch?v=9m_K2Yg7wGQ"
if let range = strUrl.range(of: "=") {
        let strIdentifier = strUrl.substring(from: range.upperBound)
        print("Identifier:\(strIdentifier)")
        let videoPlayerViewController = 
        XCDYouTubeVideoPlayerViewController(videoIdentifier: strIdentifier)
        videoPlayerViewController.present(in: viewYTVideo)
        videoPlayerViewController.moviePlayer.play()
    }
}
1 голос
/ 01 октября 2012

Вместо используемого вами HTML-кода для встраивания перейдите на веб-сайт YouTube, найдите видео, используйте кнопку «Поделиться», а затем кнопку «Внедрить», чтобы получить пример для встраивания HTML.Используйте этот шаблон для встраивания видео, а не ту версию Flash, которую вы сейчас используете.

...