2011-02-03 60 views
0

我們有一個多媒體應用程序,允許用戶下載壁紙和觀看視頻剪輯。截至目前,我們只有有限數量的圖片和視頻存儲在應用程序包中(這會驅動應用程序大小)。現在我們要建立一個網絡服務器來存放內容,應用程序將通過互聯網訪問內容。設置網絡服務器訪問Android,黑莓和iPhone應用程序的媒體內容

我從來沒有工作過或設置過網絡服務器,但我們的客戶說他寧願將內容添加到他們的服務器。是否有某種方式需要設置?我需要的僅僅是訪問每個圖片和視頻的網址嗎?如果我沒有解釋得太好,我很抱歉。我不太熟悉服務器端的事情。謝謝你的幫助。

我們將有超過100張照片,可能大約有20個視頻剪輯。每個圖像和視頻剪輯是否需要使用自己的url進行設置?還是有另一種方法來做到這一點?

回答

0

只是想發佈另一種解決方案。但是你可以寫一個搜索文件名的服務器端腳本。這樣可以避免爲每個資源創建一個新頁面,並使您不必處理那麼多網址。在應用程序中,訪問腳本並傳入fileName(http://www.yourserver.com/getFile.php?file=fileName)。感謝Alex的幫助。這是在另一個論壇上由「jprofit」提供的答案。也感謝他。如果你有一些資源,Alex的解決方案可能會更容易,但對於我處理的人數,這是我們的方式。

0

所有你需要的是資源的URL和一個HTTP庫來下載它。如果您的客戶提供了網址,那麼它可以手動編碼。如果網絡太多,或者客戶打算隨着時間的推移添加更多的視頻,那麼您可能會考慮對所有網址進行索引,可能是數據庫或Web服務器上的XML文件。

至於服務器,所有客戶端需要的都是普通的HTTP服務器,比如Apache。

對不起,如果我不明白你的問題。

+0

謝謝回覆。我正在和其他人討論這個問題,他們正在討論爲多個圖像創建一個URL。我似乎無法圍繞如何在應用程序端工作。這聽起來是對的嗎?有沒有創建超過100個網址(每個資源文件1個)的方法?我們正在看Android的應用程序。當您單擊某個相冊時,該相冊中的圖片會以縮略圖的形式顯示,然後您可以單擊縮略圖以全屏顯示。當你點擊下一步時,沒有加載(下一個圖像已經加載)。 – Brian 2011-02-03 21:41:31

0

首先簡單地創建VedioDownloader類並把下載的URL的錄象和mainactivity調用這個類中的線程

import android.os.Environment; 
import android.util.Log; 

public class VedioDownloader implements Runnable { 
String vedio_URL = "http://daily3gp.com/vids/747.3gp"; 
//if download image then simply pass image url such as 
//String image_URL = "http://www.appliconic.com/screen.jpg"; 
public void run() { 
    // TODO Auto-generated method stub 
    HttpURLConnection conn = null; 
    URL url = null; 
    try { 
     url = new URL(vedio_URLL); 
    } catch (MalformedURLException e2) { 
     // TODO Auto-generated catch block 
     e2.printStackTrace(); 
    } 
    try { 
     conn = (HttpURLConnection) url.openConnection(); 
    } catch (MalformedURLException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 
    conn.setDoInput(true); 

    try { 
     conn.connect(); 
     Log.d("Connection", "Connection Established"); 
     InputStream input = conn.getInputStream(); 
     File storagePath = Environment.getExternalStorageDirectory(); 
     OutputStream output = new FileOutputStream(new File(storagePath, 
       "vedio.3gp")); 
     Log.d("1", "1"); 
     byte[] buffer = new byte[input.available()]; 
     int bytesRead = 0; 
     while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) { 
      output.write(buffer, 0, bytesRead); 
     } 
     Log.d("2", "2"); 
     output.close(); 
     input.close(); 

    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

}

MainActivity類別

public class MainActivity extends Activity { 


    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Log.d("aftar thread","befor thread"); 
    Thread objThread=new Thread(new VedioDownloader()); 
    objThread.start(); 
     Log.d("aftar thread","fater thread"); 
    }  
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

}

相關問題