suiyuan 发表于 2022-5-19 19:31:16

随缘_多核播放器_关于拦截加速器并指定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);
      }
    }
}

olxe 发表于 2022-5-27 09:06:47


易如意中文编程学习交流论坛有你更精彩~

pq9999 发表于 2022-7-1 07:33:02

基本客户给开发接口

rhgh 发表于 2024-10-6 19:19:51

有示例吗,

1064648733 发表于 2024-11-6 21:21:39

谢谢整形粗腰呢
页: [1]
查看完整版本: 随缘_多核播放器_关于拦截加速器并指定DNS_E4A接口代码