Где класс 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()
. Может ли кто-нибудь помочь?
Ответы
Ответ 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"));