Где находится класс SampleZipfileProvider? - PullRequest
12 голосов
/ 08 марта 2012

Внизу раздела в руководстве разработчика Google по файлам расширения (http://developer.android.com/guide/market/expansion-files.html#ZipLib) есть следующий текст.

APEZProvider - большинству приложений не нужно использовать этот класс. это класс определяет ContentProvider, который выполняет маршализацию данных из ZIP файлы через контент-провайдера Uri для обеспечения доступа к файлам для определенных API Android, которые ожидают Uri доступ к медиа-файлам. Пример приложения, доступного в пакете расширения Apk, демонстрирует сценарий, в котором этот класс полезно указать видео с VideoView.setVideoURI (). Смотрите пример приложения SampleZipfileProvider для примера того, как расширить этот класс до используйте в вашем приложении.

Пример приложения, о котором идет речь, не содержит этот класс. Но он содержит ссылку на файл .SampleVideoPlayerActivity в AndroidManifest.xml, который также отсутствует в проекте.

Кто-нибудь пытался реализовать конкретный класс на основе APEZProvider и использовал его с VideoView.setVideoURI()?

Я реализовал класс:

public class ZipFileContentProvider extends APEZProvider {

    @Override
    public String getAuthority() {
        return "com.myCompany.myAppName.provider.ZipFileContentProvider";
    }
}

Но я не знаю, как использовать его с вызовом VideoView.setVideoURI(). Кто-нибудь может помочь?

1 Ответ

27 голосов
/ 09 марта 2012

Оказалось, что моего ZipFileContentProvider было достаточно. Для тех, кто сталкивался с этой проблемой. Вот что я сделал, чтобы использовать контент-провайдер для метода VideoView.setVideoURI ().

Добавление провайдера в Manifest.

<provider android:authorities="com.myCompany.myAppName.provider.ZipFileContentProvider" android:name=".ZipFileContentProvider"></provider>

В классе видеоплееров:

final String AUTHORITY = "com.myCompany.myAppName.provider.ZipFileContentProvider";
final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY);
video = (VideoView) findViewById(R.id.video);
video.setVideoURI(Uri.parse(CONTENT_URI + "/" + videoFileName + ".mp4"));
...