随缘_多核播放器_关于拦截加速器并指定DNS_E4A接口代码
本帖最后由 suiyuan 于 2022-5-19 19:31 编辑package com.e4a.runtime.api;
import android.util.Log;
import com.e4a.runtime.annotations.SimpleFunction;
import com.e4a.runtime.annotations.SimpleObject;
import com.e4a.runtime.annotations.UsesPermissions;
import com.video.code.entity.UrlConfigure;
import com.video.code.http.HttpRequestCallback;
import com.video.code.http.ssl.TlsSniSocketFactory;
import com.video.code.serve.VideoServer;
import java.net.URL;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
@SimpleObject
@UsesPermissions(permissionNames = "android.permission.INTERNET")
public final class 代理拦截接口 {
private static final String TAG = "ActivityManager";
private static HttpRequestCallback httpRequestCallback;
private static String ip="";
@SimpleFunction
public static void setIp(String ip) {
代理拦截接口.ip=ip;
}
@SimpleFunction
public static void init() {
if (httpRequestCallback == null) {
httpRequestCallback = new HttpRequestCallback() {
String sourceHost;
@Override
public void load(final UrlConfigure urlConfigure) {
try {
String url = urlConfigure.getUrl();
// IP直连播放方案,适用场景,根据地区进行视频拉流加速
// https://b-hls-12.doppiocdn.com/hls/75715997/master/75715997.m3u8
// https://104.16.128.0/hls/75715997/master/75715997.m3u8
if (url.contains("doppiocdn.com") && !"".equals(ip)) {
sourceHost = new URL(url).getHost();
url = url.replace(sourceHost, ip);
urlConfigure.setUrl(url);
urlConfigure.getHashMap().put("Host", sourceHost);
urlConfigure.setSslSocketFactory(new TlsSniSocketFactory());//使用自定义证书
urlConfigure.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
String host = sourceHost;
if (null != host) {
return HttpsURLConnection.getDefaultHostnameVerifier().verify(host, session);
}
return false;
}
});
}
} catch (Exception e) {
Log.i(TAG, "异常" + e.getMessage());
}
}
@Override
public void OnErr(String url, boolean isTs, int statusCode) {
//此地址非篡改后地址
Log.i(TAG, "OnErr: 状态码:" + statusCode + " url:" + url);
}
};
//添加监听
VideoServer.setHttpRequestCallback(httpRequestCallback);
}
}
}
易如意中文编程学习交流论坛有你更精彩~ 基本客户给开发接口 有示例吗, 谢谢整形粗腰呢
页:
[1]