2012-12-11 39 views
9

我的應用程序試圖向用戶提供大量內容,因此該應用的尺寸遠遠大於50mb。我們無法減少或刪除部分內容,因此我們決定採用擴展方法。android在播放文件內播放電影

我正在嘗試關注本教程:Android APK Expansion Files,並已成功將擴展文件放入我的設備中進行測試。我可以在擴展中獲得任何視頻文件的輸入流。但是,當我嘗試爲videoView設置VideoUri時,它開始崩潰。以下是一些代碼:

ZipFileContentProvider contentProvider = new ZipFileContentProvider(); 
String contentPath = "content://"; 
File root = Environment.getExternalStorageDirectory(); 
String EXP_PATH = File.separator + "Android" + File.separator + "obb" + File.separator; 
String path = root.toString() + EXP_PATH + context.getPackageName() + File.separator + "main.1.com.c4e1.in2cricket.obb"; 
String zipFileName = contentPath + path + "/" + fileName; 
Uri uri = Uri.parse(zipFileName); 
videoView.setVideoUri(uri); 


public class ZipFileContentProvider extends APEZProvider { 

    @Override 
    public String getAuthority() { 
     return "com.c4e1.in2cricket.provider.ZipFileContentProvider"; 
    } 
} 
+0

你見過這個問題(關於擴展文件的崩潰):http://stackoverflow.com/questions/10051213/accessing-apk-expansion-file-with-uri-with-google-zip-expansion-library-導致 –

+0

它不是我的同樣的問題 – vodkhang

回答

2

使用zip和obb文件時,記錄正在處理的zipEntries總是一個好習慣。

檢查此日誌以確保您的假設是正確的。

使用APEZProvider爲mediaplayer提供uri。

請在standard android document檢查。

希望這會幫助你。

+0

http://stackoverflow.com/questions/12635069/accessing-to-files-inside-obb-expansion-file這可能會幫助你的工作。 –

+0

似乎沒有幫助,我可以爲我的視頻獲取輸入流 – vodkhang

+0

請使用is.available()驗證以查看您的流的大小。如果大小符合您的期望,請將其用作dataSource(),並使用prepareAsync()準備mediaplayer。 –