android在扩展文件中播放电影

android在扩展文件中播放电影,android,android-videoview,expansion,Android,Android Videoview,Expansion,我的应用程序试图向用户提供大量内容,因此应用程序的大小远远大于50mb。我们无法减少或删除某些内容,因此我们决定采用扩展方法 我正试图遵循本教程:,并已成功地将扩展文件放入我的设备中进行测试。我可以得到扩展中任何视频文件的输入流。但是当我尝试为videoView设置VideoURI时,它开始崩溃。以下是一些代码: ZipFileContentProvider contentProvider = new ZipFileContentProvider(); String contentPath =

我的应用程序试图向用户提供大量内容,因此应用程序的大小远远大于50mb。我们无法减少或删除某些内容,因此我们决定采用扩展方法

我正试图遵循本教程:,并已成功地将扩展文件放入我的设备中进行测试。我可以得到扩展中任何视频文件的输入流。但是当我尝试为videoView设置VideoURI时,它开始崩溃。以下是一些代码:

ZipFileContentProvider contentProvider = new ZipFileContentProvider();
String contentPath = "content://";
File root = Environment.getExternalStorageDirectory();
String EXP_PATH = File.separator + "Android" + File.separator + "obb" + File.separator;
String path = root.toString() + EXP_PATH + context.getPackageName() + File.separator + "main.1.com.c4e1.in2cricket.obb";
String zipFileName =  contentPath + path + "/" + fileName;
Uri uri = Uri.parse(zipFileName);
videoView.setVideoUri(uri);


public class ZipFileContentProvider extends APEZProvider {

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

在处理zip和obb文件时,记录您正在处理的zipEntries始终是一个很好的做法

检查此日志以确保您的假设是正确的

使用mediaplayer的APEZProvider提供uri

登记一下


希望这能对您有所帮助。

您看到这个问题了吗(关于扩展文件崩溃):这与我的问题不同,这可能有助于您处理。似乎没有帮助,我可以获取视频的输入流请使用is.available()验证以查看流的大小。如果大小符合您的预期,请将其用作dataSource(),并使用prepareAsync()准备mediaplayer。检查此项以了解如何使用APEZProvider。