«Формат фильма не поддерживается» на iPhone с плеером YouTube в WebView - PullRequest
3 голосов
/ 30 ноября 2010

Я использую UIWebView на iPhone для воспроизведения видео с YouTube. Это работает нормально большую часть времени, но не все.

В некоторых случаях, по-видимому, связанных с проблемами сетевого подключения, возникает ошибка «Этот формат фильма не поддерживается». Показано. Эту же ошибку можно увидеть как в Safari, так и в плеере YouTube при одинаковых обстоятельствах.

К сожалению, это было замечено Apple во время тестирования AppStore, поэтому они отклонили приложение.

Может ли кто-нибудь предложить способы более адекватного обнаружения и обработки ошибки или, в качестве альтернативы, любую другую систему видеохостинга, где мы могли бы получить аналогичный опыт без проблем с плеером?

Спасибо за вашу помощь,

Larry

Ответы [ 2 ]

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

Если вы используете API данных YouTube и проверяете синдикатный ключ, если он TRUE, то видео должно воспроизводиться.

Когда это значение установлено в FALSE, это означает, что видео ограничено на мобильных устройствах.

Предполагая, что youTubeResults представляет собой NSDictionary в кодировке YouTube,

if (![[[[[[youTubeResults objectForKey:@"data"]
                         objectForKey:@"items"]
                         objectAtIndex:index]
                         objectForKey:@"accessControl"]
                         valueForKey:@"syndicate"] isEqualToString:@"allowed"]){
    NSLog(@"video won't play on mobile!");
}

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

https://github.com/enigmaticflare/UIWebView-YouTube--iOS-Category--ARC-compliant-code

0 голосов
/ 14 ноября 2011

Попробуйте этот код, чтобы увидеть, дает ли он какие-либо другие подсказки о проблеме:

// report the error inside the webview
    NSString* errorString = [NSString stringWithFormat:
                             @"<html><center><font size=+5 color='white'>An error occurred:<br>%@</font></center></html>",
                             error.localizedDescription];
    [self.webView loadHTMLString:errorString baseURL:nil];
...