Где находится класс SampleZipfileProvider?
Внизу раздела в руководстве разработчика Google по файлам расширения ( http://developer.android.com/guide/market/expansion-files.html) есть следующий текст.
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 ответ
Оказалось, что моего 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"));