2010-02-18 40 views
14

Trong ứng dụng Android của tôi, tôi có một WebView để hiển thị dữ liệu html từ trang web của chúng tôi. Đôi khi trang sẽ có các đối tượng nhúng youtube. Điều này không hiển thị đúng trong ứng dụng. Có cách nào để hiển thị/phát video trên youtube trong WebView không? Cảm ơn.phát video trên youtube trong WebView

+0

tôi đã trả lời như thế nào để thiết lập webview của bạn để nhúng và chơi video youtube ở đây: http://stackoverflow.com/a/12850816/223440 –

Trả lời

8

Bạn không thể hiển thị chúng được nhúng ngoại trừ có lẽ trên các thiết bị có Flash.

Tuy nhiên, nếu bạn có thể phân tích chi tiết video trên YouTube, bạn có thể tạo ACTION_VIEWIntent sẽ hiển thị chúng trên ứng dụng YouTube ... cho những thiết bị Android có ứng dụng YouTube.

Bạn cũng có thể thử nghiệm với thẻ <video> của HTML5, mà AFAIK được hỗ trợ trong ứng dụng Trình duyệt và do đó có thể hoạt động trong WebView.

+0

nhờ Mark, Im đi với bắt đầu một ý định mới trên youtube url. –

+3

Tôi đã thử sử dụng HTML5 mà không thành công. Trình duyệt không tải "bản xem trước" của video nhưng không có chức năng phát nào cả. – Raykud

2

Bạn có thể thử chuyển đổi trang web của mình để nhúng HTML5 version of the YouTube player thay vì phiên bản flash. Vẫn không chắc chắn điều này sẽ làm việc 100%, nhưng nó rõ ràng sẽ làm việc tốt hơn so với phiên bản flash trên các thiết bị hiện không hỗ trợ flash.

Chỉnh sửa: Nevermind có vẻ như phiên bản HTML5 cũng yêu cầu trình duyệt hỗ trợ codec H.264, không giống như bất kỳ thiết bị Android nào hiện đang hỗ trợ.

+0

Cảm ơn bạn đã chỉnh sửa, cần thông tin đó: D – Warpzit

4

đã đọc bài viết của tôi trên android-phát triển nhóm ở đây: YouTube in the emulator?

Về cơ bản, cách tốt nhất để chơi clip YouTube là tạo Hoạt động của riêng bạn cho nó, và đây là một ví dụ tuyệt vời: Polish Your App: Free Embeddable Android YouTube Activity!

CẬP NHẬT : Các vấn đề với sự không tương thích do thay đổi mã thông báo của YouTube đã được khắc phục. Phiên bản mới nhất của thành phần sẽ chỉ hoạt động tốt với các video công khai trên YouTube.

+0

Cảm ơn Felix, tôi đã xem xét một người chơi tùy chỉnh nhưng đã quyết định chống lại nó. Lý do là trình phát mặc định có nhiều tính năng hơn như dấu trang, gắn dấu sao vv sẽ không khả dụng trên trình phát tùy chỉnh. Ngoài ra, trình phát mặc định quen thuộc hơn với người dùng. –

+0

trông giống như chính xác những gì tôi cần nhưng có vẻ như bị hỏng, thay đổi bảo mật trên youtube và giờ đây không thể tìm thấy video – schwiz

6
webView.setWebViewClient(new WebViewClient() 
{ 
public boolean shouldOverrideUrlLoading(WebView view, String url) 
{ 
    // YouTube video link 
    if (url.startsWith("vnd.youtube:")) 
    { 
    int n = url.indexOf("?"); 
    if (n > 0) 
    { 
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("http://www.youtube.com/v/%s", url.substring("vnd.youtube:".length(),n))); 
    } 
    return (true); 
    } 

    return (false); 
} 
}); 

Bạn WebView (WebView) sẽ gửi cho bạn các thông điệp shouldOverrideUrlLoading với một URL có dạng như thế này:

vnd.youtube:{VIDEO_ID}?{PARMS}

Phân tích này để chuyển đổi nó đến http://www.youtube.com/v/ {VIDEO_ID}, sau đó đưa URL được sửa đổi này làm Mục đích.

trình đối với tôi ...

+0

Làm thế nào tôi không nhận được sự kiện này khi tôi nhấp vào hình ảnh video? Liên kết của tôi trông như sau: