安卓的视频缓存

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30983519/article/details/62428520

项目中遇到视频播放,需要加载网络url,不可能每次都进行网络加载,当然了,就需要用到我们的缓存机制

AndroidVideoCache

AndroidVideoCache是一个视频/音频缓存库,利用本地代理实现了边下边播,使用起来非常简单。

HttpProxyCacheServer是主要类,是一个代理服务器,可以配置缓存文件的数量、缓存文件的大小、缓存文件的目录和缓存文件命名算法,文件缓存均基于LRU算法,利用Builder来配置:

复制代码
//配置缓存目录
public Builder cacheDirectory(File file);

//配置缓存文件命名规则
public Builder fileNameGenerator(FileNameGenerator fileNameGenerator) ;

//配置缓存文件大小
public Builder maxCacheSize(long maxSize) ;

//配置缓存文件数量
public Builder maxCacheFilesCount(int count) ;
复制代码

建议以单列模式将HttpProxyCacheServer存放于Application中:

复制代码
public class App extends Application {

    private HttpProxyCacheServer proxy;

    public static HttpProxyCacheServer getProxy(Context context) {
        App app = (App) context.getApplicationContext();
        return app.proxy == null ? (app.proxy = app.newProxy()) : app.proxy;
    }

    private HttpProxyCacheServer newProxy() {
        return new HttpProxyCacheServer(this);
    }
}
复制代码

调用十分方便,只需要增加一行代码:

复制代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

    HttpProxyCacheServer proxy = getProxy();
    String proxyUrl = proxy.getProxyUrl(VIDEO_URL);
    videoView.setVideoPath(proxyUrl);
}

private HttpProxyCacheServer getProxy() {
    return App.getProxy(getApplicationContext());
}
最后视频加载的 时候需要判断是否缓存,做一些比如缓冲进度条的隐藏等操作
展开阅读全文

没有更多推荐了,返回首页