Cập nhật: Mọi thứ bên dưới vẫn đúng, nhưng official YouTube API for Android hiện khả dụng.
Cho đến nay, cách dễ nhất để phát video trên YouTube trên Android đơn giản là kích hoạt Ý định để khởi chạy ứng dụng YouTube dành cho Android gốc. Tất nhiên, điều này sẽ không thành công nếu bạn không sử dụng thiết bị Google được chứng nhận, thiết bị đó không có bổ sung các ứng dụng của Google. (Kindle Fire có lẽ là ví dụ lớn nhất của một thiết bị như vậy). Vấn đề với phương pháp này là người dùng sẽ không tự động quay trở lại ứng dụng của bạn khi video kết thúc; họ phải nhấn nút Quay lại và vào thời điểm này, bạn có thể đã mất chúng.
Là tùy chọn thứ hai, bạn có thể sử dụng API MediaPlayer để phát video YouTube. Nhưng có ba cảnh báo với cách tiếp cận này:
1) Bạn cần thực hiện cuộc gọi tới API dịch vụ web GData của YouTube, chuyển ID đó cho ID của video. Bạn sẽ lấy lại một tấn siêu dữ liệu, cùng với đó là URL RTSP mà bạn nên chuyển tới MediaPlayer để phát lại luồng được mã hóa H.264. Đây có lẽ là lý do tại sao nỗ lực của bạn để sử dụng MediaPlayer không thành công; có thể bạn không sử dụng đúng URL để phát trực tiếp.
2) Cách tiếp cận GData/MediaPlayer sẽ chỉ phát lại nội dung có độ phân giải thấp (176x144 hoặc tương tự). Đây là một quyết định có chủ ý về một phần của YouTube, để ngăn chặn hành vi trộm cắp nội dung. Tất nhiên, điều này không cung cấp một trải nghiệm rất thỏa đáng. Có các hacks cửa sau để có luồng có độ phân giải cao hơn nhưng chúng không được hỗ trợ trên tất cả các bản phát hành của Android và sử dụng chúng là vi phạm điều khoản dịch vụ của YouTube.
3) Luồng RTSP có thể bị chặn bởi một số mạng/tường lửa bên trong, vì vậy phương pháp này có thể không hoạt động đối với tất cả người dùng.
Tùy chọn thứ ba là nhúng một WebView vào ứng dụng của bạn. Có hai phương pháp bạn có thể thực hiện tại đây:
1) Bạn có thể nhúng đối tượng Flash và chạy trình phát Flash chuẩn cho máy tính để bàn cho YouTube. Bạn thậm chí có thể sử dụng API Javascript để điều khiển trình phát và chuyển tiếp sự kiện trở lại ứng dụng Android gốc. Cách tiếp cận này hoạt động tốt, nhưng tiếc là Flash không được chấp nhận trên nền tảng Android và sẽ không hoạt động cho Android 4.1 trở lên.
2) Bạn có thể nhúng thẻ <video>
để phát YouTube qua HTML5. Hỗ trợ cho việc này thay đổi giữa các bản phát hành khác nhau của Android. Nó hoạt động tốt trên Android 4.0 và sau đó; các bản phát hành trước đó có phần nào hỗ trợ HTML5 <video>
. Vì vậy, tùy thuộc vào phiên bản ứng dụng Android của bạn phải hỗ trợ, bạn có thể sử dụng phương pháp kết hợp HTML5 nhúng trên Android 4.x trở lên và Flash cho tất cả các phiên bản Android trước đó.
Có một vài chủ đề ở đây trên StackOverflow về cách sử dụng HTML5 để phát video YouTube; không ai trong số họ thực sự mô tả toàn bộ quá trình bạn phải làm theo ở một nơi. Dưới đây là các liên kết đến một vài trong số họ:
Android - How to play Youtube video in WebView?
How to embed a YouTube clip in a WebView on Android
Play Youtube HTML5 embedded Video in Android WebView
Tất cả điều này sẽ nhận được một cách đáng kể dễ dàng hơn trong những tuần/tháng tới; tại Google I/O 2012, họ đã giới thiệu/giới thiệu API YouTube mới dành cho Android sẽ hỗ trợ nhúng trực tiếp nội dung YouTube trong ứng dụng của bạn, hỗ trợ đầy đủ cho Android 2.2 (khoảng 95% cơ sở người dùng Android khi viết bài này). Nó không thể đến đủ nhanh.
Điều này có thể giúp http://www.gadgetsaint.com/android/play-youtube-android-youtube-player-api/ – ASP