2013-10-12 12 views
5

Ich brauche wirklich deine Hilfe. Arbeiten an einer iOS App Ich möchte youtube spielen. Ich habe aus vielen vielen Blogs und Posts gelesen, dass wir einen iframe verwenden müssen, um ein Youtube-Video zu spielen.YouTube Player einbetten in Iframe funktioniert nicht in iOS6

jedoch auf einige Videos, die ich erhalten: „. Dieses Video-Inhalte von XYZ enthält es von der Wiedergabe auf bestimmten Websites beschränkt Uhr auf YouTube

las ich diese Frage: Youtube in iOS5 - done button Tapped, die auf den Link gibt youtube api: https://developers.google.com/youtube/player_parameters Sie empfehlen, den iframe zu verwenden.
das Beispiel für youtube-Website ist:

<iframe id="ytplayer" type="text/html" width="640" height="390" 
    src="http://www.youtube.com/embed/M7lc1UVf-VE?autoplay=1&origin=http://example.com" 
    frameborder="0"/> 

Der Code, den ich verwendet:

<!DOCTYPE html> 
<html> 
<head> 
<style> 
* { 
    border:0; 
    margin:0; 
    } 
</style> 
</head> 
<body> 
    <iframe webkit-playsinline id="player" type="text/html" width="320" height="180" src="http://www.youtube.com/embed/rEevIL1Wpcg?enablejsapi=1&playsinline=1&autoplay=1" frameborder="0"> 
    </iframe> 
</body> 
</html> 

Kann mir jemand helfen, es zu verstehen? Ich überprüfe das eingebettete Flag als wahr, das sind alles Clips, die auf mobilen Geräten abgespielt werden dürfen.

Beispiel für Videos, die auf dem Gerät funktioniert:

Beispiel für Videos, die nicht auf dem Gerät arbeiten und die Fehler msg bringen:

+0

siehe hoch wählte eine Antwort auf [diesen Link] (http://stackoverflow.com/questions/6666423/overcoming-display-forbidden-by-x-frame-options) und wenn Sie auf Simulator laufen? Dann kann auf Safari debuggen. –

Antwort

6

können Sie webview als youtube Spieler

Versuchen Below-Code verwenden es für mich arbeiten

in .h-Datei

@property (strong, nonatomic) UIWebView *webView; 

und in Ihrem .m Datei

NSString *videoURL = @"http://www.youtube.com/embed/M7lc1UVf-VE?autoplay=1&origin=http://example.com"; 

// if your url is not in embed format or it is dynamic then you have to convert it in embed format. 

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

    NSRange range = [videoURLString rangeOfString:@"&"]; 
    @try { 
     videoURLString = [videoURLString substringToIndex:range.location]; 
    } 
    @catch (NSException *exception) { 

    } 

    // here your link is converted in embed format. 

    NSString* embedHTML = [NSString stringWithFormat:@"\ 
    <html><head>\ 
    <style type=\"text/css\">\ 
    iframe {position:absolute; top:50%%; margin-top:-130px;}\ 
    body {\ 
     background-color: transparent;\ 
    color: white;\ 
    }\ 
    </style>\ 
    </head><body style=\"margin:0\">\ 
    <iframe width=\"100%%\" height=\"240px\" src=\"%@\" frameborder=\"0\" allowfullscreen></iframe>\ 
    </body></html>",videoURL]; 

    self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; 
    [self.view addSubview:self.webView]; 
    [self.webView loadHTMLString:embedHTML baseURL:nil]; 

Hier können Sie webview Rahmen ändern, wie Sie wollen und können auch videoUrl ändern.

+0

Obwohl es mein Problem nicht gelöst hat. Du bist derjenige, der das Kopfgeld bekommt. – Mike

4

Es gibt zwei Konzepte, einbettbar und syndiziert. iOS-Geräte verwenden iframe, so dass sie grundsätzlich eingebettet werden. Android-Geräte, die die Player-API verwenden, können syndiziert prüfen. Wenn Sie eine search->list machen, können Sie videoEmbeddable und videoSyndicated auf true setzen.

Oder wenn Sie durch Videos iterieren, für jedes Video, können Sie einen video->list Anruf mit Video-ID tun und status.embeddable in der Antwort überprüfen.

Hier ist eine blog post zu diesem Thema, obwohl Beispiele in v2 sind, Informationen sind immer noch relevant.

Verwandte Themen