Tháng 9 năm 2010
Giới thiệu
Những nhà phát triển muốn tích hợp tính năng quay, tải lên, chia sẻ và phát video vào ứng dụng di động của mình có thể sử dụng nền tảng YouTube để đơn giản hoá công việc và cải thiện sản phẩm cuối cùng. Bài viết này nêu bật một số công nghệ mà bạn có thể sử dụng trong ứng dụng của mình.
Đang ghi
Quá trình quay video được thực hiện bằng nền tảng di động cơ bản. Ví dụ: ứng dụng của bạn có thể kích hoạt ý định VIDEO_CAPTURE trên Android:
Intent i = new Intent(); i.setAction(MediaStore.VIDEO_CAPTURE); startActivityForResult(i, CAPTURE_RETURN);
hoặc chạy UIImagePickerController trên iPhone iOS:
IImagePickerController *imagePicker = [[[UIImagePickerController alloc] init] autorelease]; imagePicker.delegate = self; imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie]; [self presentModalViewController:imagePicker animated:YES];
Để có các tuỳ chọn quay video nâng cao hơn trên iOS 4 trở lên, bạn cũng có thể sử dụng lớp AVCaptureSession trong Khung AV Foundation.
Đang tải lên
Ứng dụng của bạn có thể tải video và siêu dữ liệu của video lên YouTube bằng cách gửi email đến địa chỉ email đặc biệt liên kết với tài khoản YouTube của người dùng hoặc bằng cách sử dụng một trong ba phương pháp API: tải lên dựa trên trình duyệt, tải lên trực tiếp hoặc tải lên tiếp nối trực tiếp. Đối với các ứng dụng dành cho thiết bị di động, quá trình tải lên tiếp tục trực tiếp là lựa chọn đáng tin cậy nhất vì tính năng này cho phép ứng dụng khôi phục linh hoạt sau khi xảy ra lỗi kết nối và tiếp tục quá trình tải lên từ điểm bị lỗi. Giao thức tải lên có thể tiếp tục của YouTube tận dụng cơ chế Phạm vi/Phạm vi HTTP 1.1 để truyền video theo đoạn và trong trường hợp bị gián đoạn, để xác định số byte đã được chuyển thành công.
Mặc dù nội dung video thực tế là thành phần quan trọng nhất trong quá trình tải lên, nhưng siêu dữ liệu video là một phần không thể thiếu trong quy trình vì siêu dữ liệu đó cho phép người dùng tìm video trong tìm kiếm đồng thời cũng hỗ trợ các tính năng khác được mô tả ở phần sau của bài viết này. Ngoài các thành phần phổ biến như danh mục, nội dung mô tả và tiêu đề, ứng dụng di động có thể dễ dàng đưa dữ liệu vị trí địa lý vào từ thiết bị GPS của điện thoại. Những dữ liệu này cho phép bạn cung cấp khả năng tìm kiếm dựa trên vị trí hoặc để đánh dấu vị trí của video trên bản đồ. Đối với các ứng dụng tải video lên nhằm giảm thiểu hoạt động tương tác của người dùng, bạn có thể chọn tải lên không có siêu dữ liệu. Bạn có thể xem thêm thông tin về cách này trong bài nói chuyện tại Google I/O.
Chia sẻ
API dữ liệu YouTube cũng cung cấp chức năng phong phú cho hoạt động chia sẻ video. Giống như các API dữ liệu khác của Google, API YouTube sử dụng giao thức lấy cảm hứng từ REST hỗ trợ trình bày dữ liệu Atom, JSON và JSON-C. Các phản hồi API nhỏ gọn của JSON-C đặc biệt phù hợp với môi trường thiết bị di động thường bị hạn chế về tài nguyên. API này cung cấp chức năng tìm kiếm video linh hoạt; khả năng bình luận và xếp hạng video; quyền truy cập vào danh sách đăng ký, video yêu thích, danh sách phát và công cụ đề xuất; cũng như một loạt tính năng cộng đồng giúp bạn tích hợp video vào các ứng dụng xã hội. Bạn có thể tích hợp tất cả những chức năng này vào ứng dụng dành cho thiết bị di động bằng cách sử dụng thư viện ứng dụng dành riêng cho ngôn ngữ lập trình hoặc bằng cách tương tác trực tiếp với máy chủ API của YouTube qua HTTP. Phương pháp trước đây loại bỏ hầu hết sự phức tạp của giao thức nhưng đổi lại là mức độ sử dụng ứng dụng lớn hơn. Phương pháp thứ hai cho phép bạn tương tác theo cách thủ công với các dịch vụ API cụ thể mà ứng dụng của bạn sử dụng. Cuối cùng, lựa chọn này là dành riêng cho ứng dụng. Để bắt đầu, hãy xem thư viện Java GData cho Android hoặc thư viện GData Target-C cho iPhone. Các ứng dụng video di động phức tạp hơn có thể hưởng lợi từ việc tích hợp với phần phụ trợ của máy chủ. Một trong những ứng dụng như vậy là YouTube Direct (Hình 1), trong đó có mã máy chủ Nguồn mở được định cấu hình sẵn để chạy trên Google App Engine, cũng như các ứng dụng khách tham chiếu triển khai quá trình tải video lên cho Android (ytd-android, trong Hình 1) và iPhone (ytd-iphone). |
![]() Hình 1: Ứng dụng YouTube Direct dành cho Android |
Bảo mật
Tính bảo mật và xác thực cũng là các khía cạnh quan trọng trong quá trình phát triển ứng dụng YouTube dành cho thiết bị di động. Mặc dù một số thao tác API có sẵn cho các ứng dụng chưa được xác thực, nhưng các yêu cầu khác cần được uỷ quyền. Việc này được thực hiện thông qua mã thông báo xác thực được gửi trong yêu cầu API. Các thao tác như vậy bao gồm việc tải video lên cũng như mọi thao tác khác sửa đổi hoặc ghi dữ liệu hoặc truy cập vào thông tin riêng tư của người dùng.
API này hỗ trợ 3 phương thức xác thực: AuthSub, OAuth và ClientLogin. ClientLogin là phương thức đơn giản nhất để sử dụng cho các ứng dụng di động và trên Android, bạn có thể sử dụng AccountManager để dễ dàng lấy mã thông báo xác thực. Tuy nhiên, các ứng dụng tích hợp ứng dụng di động và nhiều phần phụ trợ web nên cân nhắc sử dụng OAuth (được ưu tiên làm tiêu chuẩn mở) hoặc AuthSub (dành riêng cho Google). Xem ứng dụng này để biết cách triển khai xác thực OAuth mẫu trên Android và GDataOAuthViewControllerTouch để biết cách triển khai mẫu trên iPhone iOS.
Phát
Và cuối cùng, các video luôn tồn tại để mọi người có thể xem. Xin nhắc lại rằng nền tảng YouTube mang đến nhiều lựa chọn.
- Hầu hết các nền tảng di động hiện đại đều đi kèm với ứng dụng trình phát YouTube, cho phép tích hợp nhanh chóng. Nếu nền tảng của bạn không có ứng dụng trình phát YouTube, bạn có thể tải ứng dụng đó xuống. Một ứng dụng dành cho thiết bị di động khởi chạy trình phát bằng dịch vụ nền tảng. Ví dụ: trên Android, một ứng dụng sử dụng ý định ACTION_VIEW và trên iPhone, một ứng dụng có thể chạy trình phát bằng phương thức
openURL
của lớpUIApplication
như được đề cập trong bài đăng này trên blog. - Trang web YouTube dành cho thiết bị di động http://m.youtube.com giúp bạn dễ dàng tích hợp tính năng phát video trong ứng dụng web.
- Để kiểm soát tốt hơn trải nghiệm phát, các ứng dụng trên các nền tảng hỗ trợ Adobe Flash có thể mở rộng trình phát YouTube AS3, mang lại chất lượng phát cao hơn.