Skip to content

Commit

Permalink
nICEnnnnnnnLee#47 尝试修复虎牙录制一段时间后自动断开的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
nICEnnnnnnnLee committed Jun 15, 2020
1 parent 2deb84f commit c784f4a
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions src/main/java/nicelee/bilibili/live/impl/RoomDealerHuya.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLDecoder;
import java.util.Base64;
import java.util.HashMap;
import java.util.regex.Matcher;
Expand Down Expand Up @@ -139,15 +138,26 @@ public String getLiveUrl(String roomId, String qn, Object... params) {
String stream = obj.getString("stream");
stream = new String(Base64.getDecoder().decode(stream), "UTF-8");
obj = new JSONObject(stream);

JSONObject streamDetail = obj.getJSONArray("data").getJSONObject(0)
.getJSONArray("gameStreamInfoList").getJSONObject(0);// Integer.parseInt(qn)
JSONObject streamDetail = null;
JSONArray cdns = obj.getJSONArray("data").getJSONObject(0)
.getJSONArray("gameStreamInfoList");
for(int i=0; i< cdns.length(); i++) {
JSONObject cdn = cdns.getJSONObject(i);
// ali CDN 似乎坚持不到5min就会断掉
if("TX".equals(cdn.getString("sCdnType"))) {
streamDetail = cdn;
break;
}
}
if(streamDetail == null) {
streamDetail = cdns.getJSONObject(cdns.length() -1);
}
// String url = String.format("%s/%s.m3u8?%s", streamDetail.getString("sHlsUrl"),
// streamDetail.getString("sStreamName"), streamDetail.getString("sHlsAntiCode"));
String url = String.format("%s/%s.%s?%s", streamDetail.getString("sFlvUrl"),
streamDetail.getString("sStreamName"),
streamDetail.getString("sFlvUrlSuffix"),
streamDetail.getString("sFlvAntiCode").replace("&amp;", "&"));
streamDetail.getString("newCFlvAntiCode").replace("&amp;", "&"));
if(!"".equals(qn) && !"0".equals(qn)) {
url = url + "&ratio=" + qn;
}
Expand Down

0 comments on commit c784f4a

Please sign in to comment.