导航菜单

页面标题

页面副标题

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

正在查看: 哔哩哔哩 v1.6.6 应用的 ql2.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.resolver.resolve.vip.VipQualityToken;
import com.bilibili.lib.media.resource.MediaResource;
import com.bilibili.lib.media.resource.Segment;
import tv.danmaku.ijk.media.player.IjkMediaMeta;
import tv.danmaku.videoplayer.core.danmaku.DanmakuConfig;
import tv.danmaku.videoplayer.core.danmaku.DanmakuStrategy;

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

    static {
        qn qnVar = new qn("bili2api", String.valueOf(16), "流畅 360P", "MPEG-4", "MP4A", "H264", 1, 100);
        qn qnVar2 = new qn("bili2api", String.valueOf(32), "清晰 480P", "FLV", "MP4A", "H264", 2, DanmakuStrategy.DANMAKU_MAX_ON_SCREEN_NO_LIMIT);
        qn qnVar3 = new qn("bili2api", String.valueOf(48), "高清 720P", "MPEG-4", "MP4A", "H264", 3, 175);
        qn qnVar4 = new qn("bili2api", String.valueOf(64), "高清 720P", "FLV", "MP4A", "H264", 4, 200);
        qn qnVar5 = new qn("bili2api", String.valueOf(80), "高清 1080P", "FLV", "MP4A", "H264", 5, 400);
        qn qnVar6 = new qn("bili2api", IjkMediaMeta.IJKM_VAL_TYPE__UNKNOWN, IjkMediaMeta.IJKM_VAL_TYPE__UNKNOWN, IjkMediaMeta.IJKM_VAL_TYPE__UNKNOWN, "", "", 6, -100000);
        qnVar2.a(qnVar);
        qnVar4.a(qnVar3);
        a.put(16, qnVar);
        a.put(32, qnVar2);
        a.put(48, qnVar3);
        a.put(64, qnVar4);
        a.put(80, qnVar5);
        a.put(-1000, qnVar6);
    }

    @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, false);
    }

    @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, boolean z) throws ResolveException {
        a(resolveMediaResourceParams);
        int a2 = a(resolveMediaResourceParams, psVar);
        qa a3 = new qa.a(qm.class).a("https://api.bilibili.com/pugv/player/web/playurl").a(true).b("cid", String.valueOf(resolveMediaResourceParams.c())).b("avid", String.valueOf(resolveMediaResourceParams.a())).b("qn", String.valueOf(a2)).b("buvid", psVar.b()).b("access_key", puVar != null ? puVar.c : null).b("fnval", String.valueOf(DanmakuConfig.MIN_TAKE_OFF_DURATION)).b("ep_id", String.valueOf(resolveResourceExtra.a())).a(new qd()).a();
        this.b.a(a3.g());
        qm qmVar = (qm) pz.a(a3);
        if (qmVar == null) {
            throw new ResolveMediaSourceException("empty response", -5);
        }
        if (!qmVar.a()) {
            this.b.a(qmVar.b(), qmVar.c());
            throw new ResolveMediaSourceException("connect error", -5);
        }
        this.b.a(qmVar.b(), qmVar.c());
        try {
            MediaResource a4 = qmVar.a(context, resolveMediaResourceParams, a2, null, null);
            if (a4 == null) {
                throw new ResolveMediaSourceException("resolve fake", -3);
            }
            this.b.a(a4);
            return a4;
        } catch (ResolveException e) {
            this.b.a(e, new String(qmVar.c()));
            throw e;
        }
    }

    private int a(ResolveMediaResourceParams resolveMediaResourceParams, ps psVar) {
        int a2;
        String f = resolveMediaResourceParams.f();
        int e = resolveMediaResourceParams.e();
        if (e == 0) {
            e = (TextUtils.isEmpty(psVar.e()) && TextUtils.isEmpty(psVar.f())) ? 64 : 0;
        } else if (e == 100) {
            e = a(100);
        } else if (e == 150) {
            e = a(DanmakuStrategy.DANMAKU_MAX_ON_SCREEN_NO_LIMIT);
        } else if (e == 175) {
            e = a(175);
        } else if (e == 200) {
            e = a(200);
        } else if (e == 400) {
            e = a(400);
        }
        return (TextUtils.isEmpty(f) || !qn.a(f) || (a2 = a(f)) == -1000) ? e : a2;
    }

    private void a(ResolveMediaResourceParams resolveMediaResourceParams) {
        String f = resolveMediaResourceParams.f();
        if (!TextUtils.isEmpty(f) && !qn.a(f)) {
            resolveMediaResourceParams.a((String) null);
        }
    }

    private int a(int i) {
        int i2 = 0;
        while (true) {
            int i3 = i2;
            if (i3 < a.size()) {
                if (a.valueAt(i3).g != i) {
                    i2 = i3 + 1;
                } else {
                    return a.keyAt(i3);
                }
            } else {
                return 64;
            }
        }
    }

    private int a(String str) {
        int b;
        if (TextUtils.isEmpty(str) || (b = qn.b(str)) < 0) {
            return -1000;
        }
        return b;
    }

    private String a(Context context, int i, ResolveMediaResourceParams resolveMediaResourceParams, ResolveResourceExtra resolveResourceExtra, pu puVar, ps psVar) {
        VipQualityToken a2;
        if (!qw.a(context, i) || (a2 = qp.a(resolveMediaResourceParams, resolveResourceExtra, puVar, psVar)) == null) {
            return null;
        }
        return a2.a();
    }
}