【问题标题】:Where is the SampleZipfileProvider class?SampleZipfileProvider 类在哪里?
【发布时间】:2012-03-08 19:05:52
【问题描述】:

在 Google 的扩展文件开发指南 (http://developer.android.com/guide/market/expansion-files.html#ZipLib) 部分的底部有以下文字。

APEZProvider - 大多数应用程序不需要使用这个类。这 类定义了一个 ContentProvider 来编组来自 ZIP 的数据 通过内容提供者 Uri 提供文件以提供文件访问 对于某些需要 Uri 访问媒体文件的 Android API。这 Apk 扩展包中提供的示例应用程序演示 此类用于指定视频的场景 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() 调用中使用它。有人可以帮忙吗?

【问题讨论】:

    标签: android android-contentprovider


    【解决方案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"));
    

    【讨论】:

    • 我也找不到 SampleZipfileProvider。我不知道你的答案是如何工作的,但确实如此;谢谢!
    • 我想补充一点,如果您的文件位于 zip 内的文件夹中(就像我的一样),您需要将其包含在路径中。例如 Uri.parse(CONTENT_URI + "/MyFolder/" + videoFileName + ".mp4")
    • 你是我的英雄!像布伦德尔一样,我不知道它是如何工作的,但它确实如此,我会接受它:D 谢谢! +1
    • @elprl 我可以通过 URI 从扩展文件中设置通知声音吗?
    猜你喜欢
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多