Exo-Player 2.10.1 表示已弃用 SimpleCache(File cacheDir, CacheEvictor evictor)

Exo-Player 2.10.1 says SimpleCache(File cacheDir, CacheEvictor evictor) deprecated

我正在使用 ExoPlayer 播放来自在线服务器的视频。因此,为了更好地保存更多互联网或数据以重播视频,我只是将所有视频缓存到 Cache directory。但问题是说弃用了 SimpleCacheconstructor

查看我的代码:

private var sDownloadCache: SimpleCache? = null

fun getInstance(mContext: Context): SimpleCache {
    val cacheEvictor = LeastRecentlyUsedCacheEvictor((100 * 1024 * 1024).toLong())

    if (sDownloadCache == null)
        sDownloadCache = SimpleCache(File(mContext.getCacheDir(), "media"),
                cacheEvictor)
    return sDownloadCache!!
}

在此代码中,编译器只是警告我 constructor SimpleCache(File!, CacheEvictor!) 已弃用。 Java 中已弃用。所以,在那之后我试图在 SimpleCache.java 的文件中找到方法,现在有一种方法可以使用 SimpleCache 是..

SimpleCache(File cacheDir, CacheEvictor evictor, DatabaseProvider databaseProvider)

这对我来说是新的。所以,我的问题是如何使用这个新的构造函数而不是旧的弃用构造函数?有没有办法通过DatabaseProvider?如果是,那么如何或来自什么?

我正在使用 ExoPlayer 库:

implementation 'com.google.android.exoplayer:exoplayer:2.10.1'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.10.1'

因为此版本提供了易于创建 ExoPlayerFactory instancebuild ProgressiveMediaSource.

试试这个:

        val evictor = LeastRecentlyUsedCacheEvictor((100 * 1024 * 1024).toLong())
        val databaseProvider: DatabaseProvider = ExoDatabaseProvider(mContext)

        simpleCache = SimpleCache(File(mContext.cacheDir, "media"), evictor, databaseProvider)


        val mediaSource = ProgressiveMediaSource.Factory(
            simpleCache?.let {
                CacheDataSourceFactory(
                    mContext,
                    100 * 1024 * 1024, 10 * 1024 * 1024, playUri, it
                )
            }
        )
            .createMediaSource(playUri)

        exoPlayer?.prepare(mediaSource)