2012-12-11 8 views
9

La mia app sta cercando di fornire molti contenuti agli utenti, quindi la dimensione dell'app è molto maggiore di 50mb. Non è possibile ridurre o rimuovere parte del contenuto, quindi abbiamo deciso di adottare l'approccio di espansione.android play movie all'interno del file di espansione

Sto cercando di seguire questo tutorial: Android APK Expansion Files e sono riuscito a mettere il file di espansione nel mio dispositivo per il test. Potrei ottenere il flusso di input di qualsiasi file video all'interno dell'espansione. Ma quando provo a impostare VideoUri per la visualizzazione video, si avvia in modo anomalo. Ecco alcuni codice:

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

Hai visto questa domanda (riguardante arresti anomali dei file di espansione): http://stackoverflow.com/questions/10051213/accessing-apk-expansion-file-with-uri-with-google-zip-expansion-library- cause –

+0

Non è lo stesso problema del mio – vodkhang

risposta

2

Mentre si lavora con zip ei file OBB è sempre una buona pratica di registrare i zipEntries avete a che fare con.

Controllare questo registro per assicurarsi che le ipotesi siano corrette.

Usa APEZProvider per mediaplayer per fornire uri.

Controllare questo in standard android document.

Spero che questo ti possa aiutare.

+0

http://stackoverflow.com/questions/12635069/accessing-to-files-inside-obb-expansion-file questo potrebbe aiutarti a lavorare. –

+0

Non sembra essere d'aiuto, potrei ottenere il flusso di input per i miei video – vodkhang

+0

Verifica per favore usando is.available() per vedere le dimensioni del tuo stream. Se la dimensione è secondo le tue aspettative, usala come dataSource() e prepara il tuo mediaplayer con prepareAsync(). –

Problemi correlati