2010-03-16 137 views
0

我正在編寫GWT應用程序,我需要上傳視頻文件並將該視頻編碼成不同的視頻格式。我決定使用Panda Video Converter。我能夠在我的EC2實例上運行熊貓(使用他們的圖像),並且我可以從Panda的測試頁上傳視頻,但現在我試圖在GWT中使用我自己的應用程序做同樣的事情。 我的問題是:如何獲得視頻ID,以及如何將視頻發佈到服務器。我需要使用哪個網址?我試圖讀他們的documentation,但不知道從哪裏開始。這是我第一次使用webservices和url,可能這就是爲什麼我不知道它是如何工作的。GWT和熊貓視頻轉換器

回答

1

聲明:我不知道熊貓視頻轉換器是如何工作的,這只是使用RequestBuilder向服務器發送GET和POST請求的一個例子。

的步驟來完成這似乎是大致爲:

  1. 發個帖子hq.pandastream.com/videos.(yaml|xml)與您的帳戶ID作爲參數。
  2. 接收包含您創建的新視頻ID(佔位符)的回覆
  3. 根據ID向用戶顯示錶單。形式通過發送GET到upload.pandastream.com/videos/[id]/form
  4. 提交此表單上傳視頻,其信息可以通過發送GET被檢索到GET hq.pandastream.com/videos/id.(yaml|xml)

由於該處理的唯一元件是POST和GET請求檢索您可以使用RequestBuilder在GWT中爲您提供這些請求。

我們會一步一步來。

發送POST到hq.pandastream.com/videos.xml,並將您的帳戶ID作爲參數。

RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, "http://hq.pandastream.com/videos.xml"); 
rb.sendRequest("account_key=foo", new RequestCallback() { 
    protected void onResponseReceived(Request request, Response, response) { 
    // parse XML to get "id" element 
    } 
    // onError() ... 
}); 

現在您已經擁有該ID,您可以發出另一個請求來獲取HTML上傳表單。

rb = new RequestBuilder(RequestBuilder.GET, "http://upload.pandastream.com/videos/" + id + "/form"); 
rb.sendRequest(null, new RequestCallback() { 
    protected void onResponseReceived(Request request, Response, response) { 
    // this may not work, and it may be a bad idea to inject third-party HTML 
    // straight into your page. You might also want to open a popup window 
    // instead of injecting the HTML directly. 
    someWidget.setHTML(response.getText()); 
    } 
    // onError() ... 
}); 

與形成,用戶上傳的視頻等

現在,以獲取有關視頻的信息,這是 - 你猜對了 - 另一種RequestBuilder電話。

rb = new RequestBuilder(RequestBuilder.GET, "http://hq.pandastream.com/videos/" + id + ".xml"); 
rb.sendRequest(null, new RequestCallback() { 
    protected void onResponseReceived(Request request, Response, response) { 
    // parse response XML to get info you want 
    } 
    // onError() ... 
}); 

另一個免責聲明:這是一個什麼樣似乎是上傳視頻,根據您鏈接的文檔的過程中非常大致的輪廓。這只是作爲使用RequestBuilder進行GET/POST調用的基本示例。

+0

出於某種原因,它將我重定向到登錄頁面。這裏是我在日誌中看到的: 〜已啓動請求處理:Wed Mar 17 00:38:11 +0000 2010 〜Params:{「format」=> nil,「action」=>「create」,「controller 「=>」videos「} 〜重定向到:/ login(302) 〜{:dispatch_time => 0.00055,:after_filters_time => 6.0e-06,:action_time => 0.000226} 任何想法? – Maksim 2010-03-17 00:43:47

+0

您確定您首先通過傳遞您的賬戶密鑰進行身份驗證嗎?你是否使用服務器在隨後的調用中返回的id? – 2010-03-17 00:52:48

+0

哪一步將您重定向到登錄頁面?你用你的賬戶密鑰而不是「account_key = foo」替換「foo」嗎? – 2010-03-17 04:43:41

0

在我看來,U2Any Video Converter對我們來說也是一個不錯的選擇,因爲它實用且專業且易於使用。它可以處理所有轉換視頻/音頻格式的問題。希望我的信息可以幫助你。