导航菜单

页面标题

页面副标题

哔哩哔哩 v1.6.6 - qj.java 源代码

正在查看: 哔哩哔哩 v1.6.6 应用的 qj.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package bl;

import android.content.Context;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.util.SparseArray;
import bl.qa;
import com.bilibili.lib.media.resolver.exception.ResolveException;
import com.bilibili.lib.media.resolver.exception.ResolveMediaSourceException;
import com.bilibili.lib.media.resolver.params.ResolveMediaResourceParams;
import com.bilibili.lib.media.resolver.params.ResolveResourceExtra;
import com.bilibili.lib.media.resolver.resolve.IMediaResolver;
import com.bilibili.lib.media.resource.MediaResource;
import com.bilibili.lib.media.resource.Segment;
import tv.danmaku.ijk.media.player.IjkMediaMeta;

public class qj implements IMediaResolver {
    private static final SparseArray<qn> a = new SparseArray<>();
    private qx b;

    static {
        qn qnVar = new qn("bl2api", String.valueOf(1), "流畅", "MPEG-4", "MP4A", "H264", 1, 100);
        qn qnVar2 = new qn("bl2api", String.valueOf(2), "高清", "MPEG-4", "MP4A", "H264", 2, 200);
        qn qnVar3 = new qn("bl2api", String.valueOf(3), "超清", "FLV", "MP4A", "H264", 3, 400);
        qn qnVar4 = new qn("bl2api", IjkMediaMeta.IJKM_VAL_TYPE__UNKNOWN, IjkMediaMeta.IJKM_VAL_TYPE__UNKNOWN, IjkMediaMeta.IJKM_VAL_TYPE__UNKNOWN, "", "", 4, -100000);
        a.put(1, qnVar);
        a.put(2, qnVar2);
        a.put(3, qnVar3);
        a.put(-1000, qnVar4);
    }

    @Override
    public MediaResource resolveMediaResource(Context context, ResolveMediaResourceParams resolveMediaResourceParams, ps psVar, pu puVar, ResolveResourceExtra resolveResourceExtra) throws ResolveException {
        if (resolveMediaResourceParams == null || resolveMediaResourceParams.c() <= 0 || psVar == null) {
            throw new ResolveMediaSourceException("invalid resolve params", -1);
        }
        this.b = new qx(psVar.b(), resolveMediaResourceParams.b(), resolveMediaResourceParams.c());
        this.b.a();
        this.b.b();
        return a(context, resolveMediaResourceParams.i(), psVar, puVar, resolveResourceExtra);
    }

    @Override
    public Segment resolveSegment(Context context, pt ptVar, String str) {
        return ptVar.a();
    }

    @NonNull
    private MediaResource a(Context context, ResolveMediaResourceParams resolveMediaResourceParams, ps psVar, pu puVar, ResolveResourceExtra resolveResourceExtra) throws ResolveException {
        int a2 = a(resolveMediaResourceParams);
        qa a3 = new qa.a(qk.class).a("http://live.bilibili.com/api/playurl").b("Bilibili Freedoooooom/MarkII").a(true).b("cid", String.valueOf(resolveMediaResourceParams.c())).b("qn", String.valueOf(a2)).b(u.aly.au.a, qy.a(3, "fSDRQgpusmIbrzyc")).b("otype", "json").b("platform", psVar.d()).b("build", psVar.a()).b("buvid", psVar.b()).b("device", psVar.c()).b("access_key", puVar != null ? puVar.c : null).b("mid", puVar != null ? String.valueOf(puVar.b) : null).b("expire", puVar != null ? String.valueOf(puVar.a) : null).b("npcybs", resolveMediaResourceParams.d() ? "1" : "0").b("unicom_free", resolveResourceExtra.f() ? "1" : null).a(new qd()).a();
        this.b.a(a3.g());
        qk qkVar = (qk) pz.a(a3);
        if (qkVar == null) {
            throw new ResolveMediaSourceException("empty response", -5);
        }
        this.b.a(qkVar.b(), qkVar.c());
        if (!qkVar.a()) {
            throw new ResolveMediaSourceException("connect error", -5);
        }
        try {
            MediaResource a4 = qkVar.a(context, resolveMediaResourceParams, a2, a, new int[]{1, 2, 3});
            if (a4 == null) {
                throw new ResolveMediaSourceException("resolve fake", -3);
            }
            this.b.a(a4);
            return a4;
        } catch (ResolveException e) {
            this.b.b(new String(qkVar.c()));
            throw e;
        }
    }

    private int a(ResolveMediaResourceParams resolveMediaResourceParams) {
        int a2;
        int a3;
        String f = resolveMediaResourceParams.f();
        int e = resolveMediaResourceParams.e();
        if (e <= 100) {
            a2 = a(100);
        } else if (e <= 200) {
            a2 = a(200);
        } else {
            a2 = e <= 400 ? a(400) : 1;
        }
        return (TextUtils.isEmpty(f) || !qn.a(f) || (a3 = a(f)) == -1000) ? a2 : a3;
    }

    private int a(int i) {
        for (int i2 = 0; i2 < a.size(); i2++) {
            if (a.valueAt(i2).g == i) {
                return a.keyAt(i2);
            }
        }
        return 1;
    }

    private int a(String str) {
        if (TextUtils.isEmpty(str)) {
            return -1000;
        }
        for (int i = 0; i < a.size(); i++) {
            if (str.endsWith(a.valueAt(i).a)) {
                return a.keyAt(i);
            }
        }
        return -1000;
    }
}