2012-12-11 7 views
9

Moja aplikacja stara się dostarczyć użytkownikom dużo treści, więc jej rozmiar jest znacznie większy niż 50 MB. Nie ma możliwości, abyśmy mogli zmniejszyć lub usunąć niektóre treści, więc zdecydowaliśmy się pójść z podejściem ekspansji.Plik wideo z Androidem wewnątrz pliku rozszerzenia

Próbuję wykonać ten samouczek: Android APK Expansion Files i odniosłem sukces, aż do umieszczenia pliku rozszerzenia w moim urządzeniu w celu przetestowania. Mogłem uzyskać strumień wejściowy dowolnego pliku wideo wewnątrz rozszerzenia. Ale kiedy próbuję ustawićVideoUri dla videoView, zaczyna się zawiesza. Oto niektóre kodu:

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

Czy widzisz to pytanie (dotyczące zawieszania się plików rozszerzeń): http://stackoverflow.com/questions/10051213/accessing-apk-expansion-file-with-uri-with-google-zip-expansion-library- powoduje –

+0

To nie jest ten sam problem co mój. – vodkhang

Odpowiedz

2

Pracując z zamkiem i ÖBB plików zawsze jest dobra praktyka, aby zalogować się zipEntries masz do czynienia.

Sprawdź ten dziennik, aby upewnić się, że twoje założenia są prawidłowe.

Użyj APEZProvider dla mediaplayer, aby udostępnić URI.

Sprawdź to w standard android document.

Mam nadzieję, że to ci pomoże.

+0

http://stackoverflow.com/questions/12635069/accessing-to-files-inside-obb-expansion-file to może ci pomóc w pracy. –

+0

Wydaje się nie pomagać, mógłbym uzyskać strumień wejściowy do moich filmów. – vodkhang

+0

Proszę sprawdzić, używając metody is.available(), aby zobaczyć rozmiar swojego strumienia. Jeśli rozmiar jest zgodny z oczekiwaniami, użyj go jako dataSource() i przygotuj swój mediaplayer za pomocą funkcji prepareAsync(). –

Powiązane problemy