2014-01-24 2 views
1

Я начал работать с XCDYouTubeVideoPlayer. Кажется, у него есть небольшие проблемы. Когда я использую метод (например, ниже) для вызова плеера, он открывает его и сразу же закрывает.XCDYouTubeVideoPlayer открывается и закрывается

Я импортированные следующие рамки: mediaplayer AVfoundation

и добавившие `XCDYouTubeVideoPlayerViewController.h и .m

В viewController.m я добавил этот метод:

- (IBAction) play:(id)sender 
{ 
[self.view endEditing:YES]; 
    NSString *link = @"m01MYOpbdIk"; 

XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:link]; 

[self presentMoviePlayerViewControllerAnimated:videoPlayerViewController]; 
} 

В настоящий момент его открытие и закрытие XCDYouTubeVideoPlayer вправо. Что я делаю не так?

+0

Проблема в этой строке, если и исправить это, я надеюсь, что это поможет NSURL * videoInfoURL = [NSURL URLWithString: [NSString stringWithFormat: @ "https://www.youtube.com/get_video_info?video_id=%@% @ & ps = default & eurl = & gl = US & hl =% @ ", self.videoIdentifier?: @" ", elField, ApplicationLanguageIdentifier()]]; – kagmanoj

+0

Я нашел его, я попробую и посмотрю на эту строку, чтобы определить проблему. thx – user3195388

+0

Вам следует только перейти на последнюю версию [XCDYouTubeKit] (https://github.com/0xced/XCDYouTubeKit) (ранее XCDYouTubeVideoPlayerViewController) – 0xced

ответ

0

Библиотека XCDYouTubeVideoPlayer построит «потоковое соединение» YouTube, добавив URL-адрес с предоставленной подписью. Похоже, что «URL» теперь имеет подпись вместе с ним и ключ «сиг» приходит нуль, что, таким образом, сводит на нет, если заявление в функции файл

(NSURL *) videoURLWithData:(NSData *)data error:(NSError * __autoreleasing *)error

Goto

XCDYouTubeVideoPlayerViewController.m at #248

вы будете увидеть для цикла

for (NSString *streamQuery in streamQueries) 
{ 
    NSDictionary *stream = DictionaryWithQueryString(streamQuery, queryEncoding); 
    NSString *type = stream[@"type"]; 
    NSString *urlString = stream[@"url"]; 
    NSString *signature = stream[@"sig"]; 
    if (urlString && signature && [AVURLAsset isPlayableExtendedMIMEType:type]) 
    { 
    NSURL *streamURL = [NSURL URLWithString:[NSString   
            stringWithFormat:@"%@&signature=%@", 
            urlString, 
            signature]]; 
    streamURLs[@([stream[@"itag"] integerValue])] = streamURL; 
    } 

изменить его к этому (удалить переменную подпись, если заявление и изменить URLWithString)

for (NSString *streamQuery in streamQueries) 
{ 
    NSDictionary *stream = DictionaryWithQueryString(streamQuery, queryEncoding); 
    NSString *type = stream[@"type"]; 
    NSString *urlString = stream[@"url"]; 
    if (urlString && [AVURLAsset isPlayableExtendedMIMEType:type]) 
    { 
    NSURL *streamURL = [NSURL URLWithString:urlString]; 
    streamURLs[@([stream[@"itag"] integerValue])] = streamURL; 
    } 
1

Я не понимаю, почему, но для меня, в iOS8 линии

XCDYouTubeVideoPlayerViewController.m at #79 

был вызовом метода:

- (id) initWithContentURL:(NSURL *)contentURL 
{ 
     @throw [NSException exceptionWithName:NSGenericException reason:@"Use the 
     ` initWithVideoIdentifier:` method instead." userInfo:nil]; 
} 

Я просто прокомментировать это и работает!

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