正在查看: 哔哩哔哩 v1.6.6 应用的 BiliLiveContent.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 哔哩哔哩 v1.6.6 应用的 BiliLiveContent.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package mybl;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
import bl.mg;
import bl.pz;
import bl.qa;
import bl.qb;
import bl.qe;
import com.alibaba.fastjson.annotation.JSONField;
import com.bilibili.api.BiliConfig;
import com.bilibili.tv.MainApplication;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.Executors;
import org.json.JSONObject;
import tv.danmaku.ijk.media.player.IjkMediaMeta;
import tv.danmaku.ijk.media.player.IjkMediaPlayer;
import u.aly.au;
public class BiliLiveContent implements Parcelable {
public static final Parcelable.Creator<BiliLiveContent> CREATOR = new Parcelable.Creator<BiliLiveContent>() {
@Override
public BiliLiveContent createFromParcel(Parcel parcel) {
return new BiliLiveContent(parcel);
}
@Override
public BiliLiveContent[] newArray(int i) {
return new BiliLiveContent[i];
}
};
public int[] mAcceptQuality;
public String mArea;
public int mAreaId;
public String mCorner;
@JSONField(name = "cover")
public String mCover;
public int mCurrentQuality;
@JSONField(name = "face")
public String mFace;
public int mIndex;
public boolean mIsRound;
public int mIsTv;
@JSONField(name = "online")
public long mOnline;
public long mParsedTime;
public String mPlayUrl;
public List<String> mPlayUrls;
public String mRealUrl;
@JSONField(name = "roomid")
public int mRoomId;
@JSONField(name = "title")
public String mTitle;
@JSONField(name = "uid")
public long mUid;
@JSONField(name = "uname")
public String mUname;
@Override
public int describeContents() {
return 0;
}
public boolean hasPlayUrl() {
return TextUtils.isEmpty(this.mPlayUrl);
}
public boolean hasPlayUrlResolved() {
return TextUtils.isEmpty(this.mRealUrl);
}
public String toString() {
return "BiliLive{roomId=" + this.mRoomId + ", title='" + this.mTitle + "'}";
}
public BiliLiveContent() {
this.mCurrentQuality = 10000;
this.mParsedTime = System.currentTimeMillis();
}
public int getPlayUrl() {
try {
return ((Integer) Executors.newSingleThreadExecutor().submit(new Callable<Integer>() {
@Override
public Integer call() {
return Integer.valueOf(((playUrlResponse) pz.a(new qa.a(playUrlResponse.class).a("https://api.live.bilibili.com/xlive/web-room/v2/index/getRoomPlayInfo").a(true).b(au.a, BiliConfig.a()).b("access_key", mg.a(MainApplication.a()).e()).b("room_id", String.valueOf(BiliLiveContent.this.mRoomId)).b("qn", String.valueOf(BiliLiveContent.this.mCurrentQuality)).b("protocol", "1").b(IjkMediaMeta.IJKM_KEY_FORMAT, "1,2").b("codec", "0").a(new qb()).a(), "GET")).e(BiliLiveContent.this));
}
}).get()).intValue();
} catch (Exception e) {
return -1;
}
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.mArea);
parcel.writeInt(this.mAreaId);
parcel.writeString(this.mCover);
parcel.writeLong(this.mOnline);
parcel.writeLong(this.mUid);
parcel.writeString(this.mUname);
parcel.writeString(this.mFace);
parcel.writeLong(this.mParsedTime);
parcel.writeString(this.mPlayUrl);
parcel.writeString(this.mRealUrl);
parcel.writeInt(this.mRoomId);
parcel.writeString(this.mTitle);
parcel.writeInt(this.mCurrentQuality);
parcel.writeSerializable(this.mAcceptQuality);
}
protected BiliLiveContent(Parcel parcel) {
this.mCurrentQuality = 10000;
this.mArea = parcel.readString();
this.mAreaId = parcel.readInt();
this.mCover = parcel.readString();
this.mOnline = parcel.readLong();
this.mUid = parcel.readLong();
this.mUname = parcel.readString();
this.mFace = parcel.readString();
this.mParsedTime = parcel.readLong();
this.mPlayUrl = parcel.readString();
this.mRealUrl = parcel.readString();
this.mRoomId = parcel.readInt();
this.mTitle = parcel.readString();
this.mCurrentQuality = parcel.readInt();
this.mAcceptQuality = (int[]) parcel.readSerializable();
}
public static class playUrlResponse extends qe {
public int e(BiliLiveContent biliLiveContent) {
JSONObject optJSONObject;
try {
if (!a() || (optJSONObject = new JSONObject(new String(this.b)).optJSONObject("data")) == null) {
return -1;
}
JSONObject optJSONObject2 = optJSONObject.optJSONObject("playurl_info").optJSONObject("playurl").optJSONArray("stream").optJSONObject(0).optJSONArray(IjkMediaMeta.IJKM_KEY_FORMAT).optJSONObject(0).optJSONArray("codec").optJSONObject(0);
biliLiveContent.mPlayUrls = new ArrayList();
for (int i = 0; i < optJSONObject2.optJSONArray("url_info").length(); i++) {
biliLiveContent.mPlayUrls.add(optJSONObject2.optJSONArray("url_info").optJSONObject(i).optString(IjkMediaPlayer.OnNativeInvokeListener.ARG_DNS_HOST) + optJSONObject2.optString("base_url") + optJSONObject2.optJSONArray("url_info").optJSONObject(i).optString("extra"));
}
biliLiveContent.mPlayUrl = biliLiveContent.mPlayUrls.get(biliLiveContent.mPlayUrls.size() - 1);
int i2 = biliLiveContent.mCurrentQuality != optJSONObject2.optInt("current_qn") ? 1 : 0;
biliLiveContent.mCurrentQuality = optJSONObject2.optInt("current_qn");
biliLiveContent.mAcceptQuality = new int[optJSONObject2.optJSONArray("accept_qn").length()];
for (int i3 = 0; i3 < optJSONObject2.optJSONArray("accept_qn").length(); i3++) {
biliLiveContent.mAcceptQuality[i3] = optJSONObject2.optJSONArray("accept_qn").optInt(i3);
}
return i2;
} catch (Exception e) {
return -1;
}
}
}
}