2012-04-30 30 views
5

Tôi đã tìm thấy nhiều câu hỏi trong diễn đàn này về việc nhúng video youtube và tự động phát, nhưng không ai trong số họ xóa tất cả các nghi ngờ của tôi.Tự động phát video Youtube bên trong UIWebview

tôi thấy hai phương pháp để nhúng youtube video trong UIWebView

1)

NSString *youTubeHTMLTemplate = @"<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>"; 
finalHtml = [NSString stringWithFormat:youTubeHTMLTemplate, fullYopuTubeUrl, htmlFrameWidth, htmlFrameHeight]; 

2)

NSString *youTubeHTMLTemplate = @"<html><body style=\"margin:0;padding:0;\"><iframe class=\"youtube-player\" type=\"text/html\" width=\"%f\" height=\"%f\" src=\"http://www.youtube.com/embed/%@\" frameborder=\"0\" allowfullscreen></iframe></body></html>"; 
finalHtml = [NSString stringWithFormat:youTubeHTMLTemplate, htmlFrameWidth, htmlFrameHeight, videoID]; 

Nếu tôi sử dụng (1) phương pháp và làm theo phương pháp này cho here của tôi video tự động. Ý tưởng là tìm nút trong UIWebView và gửi sự kiện chạm vào nó.

Nếu tôi sử dụng (2) và làm theo cùng một video tiếp cận không tự động phát.

Tôi nghĩ rằng (2) cách tiếp cận được khuyến nghị vì (1) chỉ dành cho Flash Video (Phải không?).

Có bằng bất kỳ phương tiện nào (2) có thể không? Điều này link nói KHÔNG.

bất cứ ai có thể xác nhận

  • Nếu tôi đúng mà (2) được khuyến khích
  • Autoplay với (2) là không thể.
+0

"nếu tôi sử dụng phương pháp (1) và làm theo cách tiếp cận được đưa ra ở đây" .. bạn đang liên kết đến câu hỏi chứ không phải câu trả lời cụ thể trên trang đó .. có 10 câu trả lời .. bạn có thể vui lòng liên kết đến câu trả lời bạn có trong tâm trí? – abbood

+0

xin lỗi @abbood nhưng đừng bận tâm đến cách tiếp cận tôi liên kết sẽ không còn hoạt động trên iOS> 5 (hoặc 6) nữa. Sử dụng API JS của YouTube. – msk

+0

hum .. tôi đã hy vọng cho một giải pháp chung chung hơn ..ví dụ tôi đang liên kết với video flash trực tiếp và tôi muốn nó phát ngay lập tức ngay sau khi người dùng tải viewController chứa webview với mã video trực tiếp .. tôi nghĩ rằng những gì tôi đang tìm kiếm đang tự động nhấp của người dùng nút play .. nhưng sau đó một lần nữa tôi donno nếu táo sẽ chấp nhận mã số – abbood

Trả lời

3

Q. Nếu tôi đúng mà (2) được khuyến khích

A. Có (2) phương pháp dành cho các thiết bị i không hỗ trợ flash.

Q. Không thể tự động phát với (2).

A. Hiện không thể tự động phát.

Cập nhật: Tôi có thể tự động phát youtube video bằng cách sử dụng API Youtube JS thấy https://developers.google.com/youtube/js_api_reference

Chỉ cần gọi playVideo từ onPlayerReady

function onPlayerReady(event) { 
       event.target.playVideo();      
      } 
+0

Làm thế nào để bạn gọi từ UIWebView? – shim

+0

@MSK Nó không hoạt động cho tôi không thể tự động phát. –

-1

Bạn cũng có thể sử dụng thủ thuật này từ Saurabh WadhwaAnswer mà bắn endActionsForControlEvents:UIControlEventTouchUpInside sau UIWebView download xong

+1

Vui lòng đọc kỹ câu hỏi của tôi, tôi đã thử nó. – msk

0

Autoplay có thể bằng cách phát hành:

webView.mediaPlaybackRequiresUserAction=FALSE; 
+0

Đây là chủ đề cũ, nhưng tôi nhớ thiết lập mediaPlaybackRequiresUserAction = NO một mình không giúp tôi. Tôi đã cập nhật câu trả lời của mình ở trên và tôi có thể tự động phát video trên youtube. – msk

+0

Tính năng này chỉ hoạt động trong iOS6 + cho tôi. –

+0

oh có thể là có vì cuối cùng tôi đã thử nó trên iOS5, nơi nó không hoạt động. Mặc dù cách tiếp cận trong câu trả lời của tôi là làm việc cho iOS> = 5. – msk

3

tôi giải quyết vấn đề bằng cách thêm mã sau:

webview.mediaPlaybackRequiresUserAction=NO; 
webview.allowsInlineMediaPlayback=YES;