2013-10-12 20 views
5

Tôi thực sự cần bạn trợ giúp. Làm việc trên ứng dụng iOS. Tôi muốn chơi youtube. Tôi hiểu từ việc đọc nhiều blog và bài đăng, chúng tôi cần sử dụng iframe để phát video trên youtube.Trình phát YouTube được nhúng trong Iframe không hoạt động trong iOS6

Tuy nhiên, trên một số video mà tôi nhận được: ". Video này chứa nội dung từ XYZ Nó bị hạn chế phát trên các trang web nhất định Xem trên YouTube"

tôi đọc câu hỏi này: Youtube in iOS5 - done button Tapped mang đến cho các liên kết đến youtube api: https://developers.google.com/youtube/player_parameters Chúng khuyên bạn nên sử dụng khung nội tuyến.
ví dụ cho trang web youtube là:

<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"/> 

Mã này tôi đã sử dụng:

<!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> 

Ai đó có thể giúp tôi hiểu được nó? Tôi kiểm tra cờ được nhúng là đúng, chúng là tất cả các clip được phép phát trên thiết bị di động.

Ví dụ cho những video không hoạt động trên các thiết bị:

Ví dụ đối với những video không làm việc trên thiết bị và đưa lên msg lỗi:

+0

xem biểu quyết cao là câu trả lời tại [liên kết này] (http://stackoverflow.com/questions/6666423/overcoming-display-forbidden-by-x-frame-options) và nếu bạn chạy trên trình mô phỏng? sau đó có thể gỡ lỗi trên Safari. –

Trả lời

6

bạn có thể sử dụng webview như máy nghe nhạc youtube

Hãy thử Dưới Mã nó đang làm việc cho tôi

trong file .h

@property (strong, nonatomic) UIWebView *webView; 

và trong bạn .m tệp

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]; 

Ở đây bạn có thể thay đổi khung webview như bạn muốn và cũng có thể thay đổi videoUrl.

+0

Mặc dù nó không giải quyết được vấn đề của tôi. Bạn là người nhận được tiền thưởng. – Mike

4

Có hai khái niệm, có thể nhúng và được cung cấp thông tin. Thiết bị iOS sử dụng khung nội tuyến để chúng cơ bản được nhúng. Các thiết bị Android sử dụng API trình phát có thể kiểm tra thông tin được cung cấp.

Khi bạn thực hiện search->list, bạn có thể đặt videoEmbeddablevideoSyndicated thành true.

Hoặc nếu bạn đang lặp qua video, cho mỗi video, bạn có thể thực hiện cuộc gọi video->list với id video và kiểm tra status.embeddable trong phản hồi.

Đây là một blog post về chủ đề này, mặc dù các ví dụ ở dạng v2, thông tin vẫn có liên quan.

Các vấn đề liên quan