Подтвердить что ты не робот

Где класс SampleZipfileProvider?

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

APEZProvider. Большинство приложений не должны использовать этот класс. Эта class определяет 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(). Может ли кто-нибудь помочь?

4b9b3361

Ответ 1

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

Добавьте поставщика в манифест.

<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"));