正在查看: 哔哩哔哩 v1.6.6 应用的 ql2.java JAVA 源代码文件
本页面展示 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();
}
}