danikula / AndroidVideoCache

Cache support for any video player with help of single line
Apache License 2.0
5.42k stars 1.15k forks source link

缓存的文件结构异常,导致播放出现问题,有没有遇到的 #262

Open hong123608 opened 5 years ago

hong123608 commented 5 years ago

缓存的文件结构异常,导致播放出现问题,有没有遇到的

lucf1103 commented 4 years ago

Caused by: java.io.FileNotFoundException: /storage/emulated/0/Android/data/ xxx/download: open failed: ENAMETOOLONG (File name too long)

我遇到了这个错,请问你解决了吗?

hong123608 commented 4 years ago

Caused by: java.io.FileNotFoundException: /storage/emulated/0/Android/data/ xxx/download: open failed: ENAMETOOLONG (File name too long)

我遇到了这个错,请问你解决了吗?

没解决,直接通过播放异常来判断的,异常的话删除文件重新缓存

lucf1103 commented 4 years ago

public class MyFileNameGenerator implements FileNameGenerator { private static final int MAX_EXTENSION_LENGTH = 4;

@Override
public String generate(String url) {
    String extension = getExtension(url);
    url = cutUrl(url);
    Log.e("cutUrl", url);
    String name = ProxyCacheUtils.computeMD5(url);
    Log.e("name", name);
    return TextUtils.isEmpty(extension) ? name : name + "." + extension;
}

private String cutUrl(String url) {
    int dotIndex = url.lastIndexOf('.');
    if (url.length() > 10 && dotIndex > 10) {
        return url.substring(dotIndex - 10);
    } else {
        return url;
    }
}

给后人一点建议吧,我这边把url弄短了很多 放了20次+ 没发现错误