SampleZipfileProvider类在哪里?

12
在Google的开发指南中关于扩展文件(http://developer.android.com/guide/market/expansion-files.html#ZipLib)的章节底部,有以下文本。
引用: APEZProvider - 大多数应用程序不需要使用此类。该类定义了一个ContentProvider,通过内容提供者URI来封装ZIP文件中的数据,以便为某些Android API提供Uri对媒体文件的访问。Apk Expansion包中提供的示例应用程序演示了使用VideoView.setVideoURI()指定视频时此类有用的场景。请参见示例应用程序的SampleZipfileProvider类,了解如何将此类扩展到您的应用程序中使用。
提问者所说的示例应用程序并没有包含这个类。但是它确实包含在AndroidManifest.xml文件中的.SampleVideoPlayerActivity文件的引用,该文件也不存在于项目中。
是否有人尝试过基于APEZProvider实现具体类,并将其与VideoView.setVideoURI()一起使用?
我已经实现了这个类:
public class ZipFileContentProvider extends APEZProvider {

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

但我不知道如何在VideoView.setVideoURI()调用中使用它。有人可以帮忙吗?

1个回答

27

事实证明,我的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"));

我也找不到SampleZipfileProvider。我不知道你的答案是如何工作的,但它确实有效;谢谢! - Blundell
4
我想补充一点,如果您的文件在zip文件夹内的一个文件夹中(就像我的一样),您需要在路径中包含它。例如:Uri.parse(CONTENT_URI + "/MyFolder/" + videoFileName + ".mp4")。 - dnorcott
你是我的英雄!就像Blundell一样,我不知道它是如何工作的,但它确实可以,我会接受它 :D 谢谢你!+1 - Rev Tyler
你现在可以在这里找到示例:https://github.com/google/play-apk-expansion/blob/master/apkx_sample/src/com/example/google/play/apkx/SampleZipFileProvider.java - stephen_liu
@elprl 我能通过URI从扩展文件中设置通知声吗? - Pranav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接