Android 如何确定exoplayer中的视频播放来自缓存还是网络?

Android 如何确定exoplayer中的视频播放来自缓存还是网络?,android,video,exoplayer2.x,Android,Video,Exoplayer2.x,我想确定当前在exoplayer中播放的视频是来自缓存目录还是直接从服务器播放 没有直接检查或回调(AFAIK),但是您可以检查自己是否缓存了给定的URI,以及是否缓存了该URI是完全缓存还是仅部分缓存 getCached方法将允许您查询此(): publicstaticvoidgetcached( DataSpec DataSpec, 高速缓存, 卡钦计数器(计数器) 值得记住的是,缓存的可能不是整个视频(特别是在一定长度以上),如果不是,也不一定是缓存的开始 答案中有一个很好的例子,展示了

我想确定当前在exoplayer中播放的视频是来自缓存目录还是直接从服务器播放

没有直接检查或回调(AFAIK),但是您可以检查自己是否缓存了给定的URI,以及是否缓存了该URI是完全缓存还是仅部分缓存

getCached方法将允许您查询此():

publicstaticvoidgetcached(
DataSpec DataSpec,
高速缓存,
卡钦计数器(计数器)
值得记住的是,缓存的可能不是整个视频(特别是在一定长度以上),如果不是,也不一定是缓存的开始


答案中有一个很好的例子,展示了如何查看缓存的内容和此处可用的内容:

谢谢Mick。但是这个解决方案并没有给我提供如何区分缓存视频和流视频的清晰标识。@PrakharGupta-我不确定你能不能做到,即使你能做到,也不会是整个流,通常只是部分流。我认为,对于大多数一般情况,合理的设计目标是保持域之间的良好分离,即,玩家将拥有URI并请求它,但它不会看到URI何时在本地或通过网络提供服务。对于您的特殊情况,我怀疑您可能需要一些类似于上面概述的机制。