2010 年 9 月
簡介
開發人員如果想要在他們的行動應用程式中添加影片的錄製、上傳、分享與播放等等功能,可以使用 YouTube 平台來簡化工作,並提升成品的效能。本文將特別介紹一些常用技術,您在撰寫應用程式時可斟酌運用。
錄影
影片錄製作業是透過基礎行動平台執行。舉例來說,您的應用程式可以在 Android 上觸發 VIDEO_CAPTURE 意圖:
Intent i = new Intent(); i.setAction(MediaStore.VIDEO_CAPTURE); startActivityForResult(i, CAPTURE_RETURN);
或是在 iPhone iOS 上啟動 UIImagePickerController:
IImagePickerController *imagePicker = [[[UIImagePickerController alloc] init] autorelease]; imagePicker.delegate = self; imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie]; [self presentModalViewController:imagePicker animated:YES];
如要在 iOS 4 以上版本中提供更多進階錄製選項,您也可以使用 AV 基礎架構的 AVCaptureSession 類別。
上傳中
應用程式可以將影片和中繼資料上傳至 YouTube,方法是傳送電子郵件至與使用者 YouTube 帳戶相關聯的特殊電子郵件地址,或是使用三種 API 方法:瀏覽器上傳、直接上傳或直接可續傳上傳。對於行動應用程式而言,直接支援續傳的上傳作業是最可靠的選擇,因為這能讓應用程式在連線失敗時,順利復原資料,並在失敗時繼續上傳作業。YouTube 支援續傳的上傳通訊協定,會使用 HTTP 1.1 Content-Range/Range 機制分段傳輸影片,在發生中斷時也能識別已成功傳輸的位元組數。
儘管實際影片內容是最重要的上傳內容,但影片中繼資料也是上傳過程不可或缺的組成部分,因為中繼資料不僅能讓使用者透過搜尋找到影片,也能讓本文後續說明的其他功能發揮作用。除了類別、說明和標題等常見元素之外,行動應用程式還可輕鬆納入手機 GPS 裝置的地理位置資料。這些資料可讓你提供以位置為基礎的搜尋功能,或在地圖上標示影片位置。如果影片上傳應用程式希望盡量減少使用者互動,則可使用零中繼資料上傳功能,詳情請參閱這場 Google I/O 演講。
分享
YouTube Data API 也為影片分享活動提供豐富功能。與其他 Google Data API 一樣,YouTube API 採用 REST 風格通訊協定,支援 Atom、JSON 和 JSON-C 資料表示法。其中 JSON-C 的精簡 API 回應特別適合資源經常受限的行動服務環境。這個 API 支援極具彈性的影片搜尋方式,以及影片評論和評分功能,同時提供訂閱內容、最愛影片、播放清單和推薦引擎的存取選項,還收錄了各種社群功能,可協助您將影片整合至社交應用程式。 這些功能全都可以整合至行動應用程式中,方法是使用程式設計語言專用的用戶端程式庫,或是透過 HTTP 直接與 YouTube 的 API 伺服器互動。第一個方式會部分運用到大多數通訊協定的複雜處理程序,因此會佔用大量應用程式資源;第二個方式則是讓您自行調整與應用程式所用的特定 API 服務如何互動,最後要採取哪種方式,將依應用程式而定。如要開始使用,請參閱適用於 Android 的 Java GData 程式庫或 iPhone 的 Objective-C GData 程式庫。對於功能比較複雜的行動版影片應用程式而言,與伺服器後端進行整合會比較方便運作。其中一個應用程式是 YouTube Direct (圖 1),其中的開放原始碼伺服器程式碼已預先設定為在 Google App Engine 上執行,並且為 Android (圖 1 中的 ytd-android) 和 iPhone (ytd-iphone) 的影片上傳功能實作參考用途。 |
![]() 圖 1:YouTube Direct Android 應用程式 |
安全性
對於 YouTube 行動版應用程式開發來說,安全性和驗證也都是重要的一環。未經驗證的用戶端已經有一些可以運用的 API 操作,但其他需要驗證的要求,則需要在 API 要求中提交驗證憑證才行。這類操作包含上傳影片,以及任何其他涉及修改或寫入資料,或是存取私人使用者資訊的操作。
API 支援三種驗證方式:AuthSub、OAuth 和 ClientLogin。ClientLogin 是行動應用程式最簡單的方法,而在 Android AccountManager 上,也很適合用來輕鬆取得驗證權杖。不過,整合了行動用戶端和多個網路後端的應用程式,則應考慮使用 OAuth,這是較受推薦的開放標準,或是使用 Google 專用的 AuthSub。如需 Android 上的 OAuth 驗證實作範例,請參閱這個應用程式;如需 iPhone iOS 的實作範例,請參閱 GDataOAuthViewControllerTouch。
播放
最後,影片存在的目的就是要讓大家觀看,而 YouTube 平台則提供了多種選項。
- 大部分先進的行動平台都隨附 YouTube 播放程式,整合作業簡單快速。如果平台中沒有 YouTube 播放器應用程式,可以下載。行動版應用程式會透過平台服務來啟用播放器。舉例來說,在 Android 上,應用程式會使用 ACTION_VIEW 意圖,而在 iPhone 上,應用程式可以使用
UIApplication
類別的openURL
方法啟動播放器,如這篇網誌文章所述。 - YouTube 行動版網站 http://m.youtube.com,可讓您輕鬆將影片播放整合至網路應用程式。
- 如要更精確地控製播放體驗,位於支援 Adobe Flash 的平台上的應用程式可以擴充 AS3 YouTube 播放器,提供更高品質的播放體驗。