admin
2021-12-22 0a1336cd2b95126d66d6f3126cb48a446cdbfad1
app/src/com/hanju/video/app/ui/media/VideoDetailActivity.java
@@ -33,15 +33,23 @@
import com.androidquery.AQuery;
import com.bumptech.glide.Glide;
import com.bumptech.glide.RequestBuilder;
import com.bumptech.glide.load.model.GlideUrl;
import com.bumptech.glide.load.model.Headers;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.transition.Transition;
import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.hanju.video.app.ui.video.PPTVPlayFragment;
import com.hanju.video.app.ui.video.VideoPlayerFragment;
import com.hanju.video.app.ui.video.parser.VideoPlayUrlParseFragment;
import com.hanju.video.app.util.JsonUtil;
import com.hanju.video.app.util.ad.GDTADConstant;
import com.hanju.video.app.util.ad.IntertitialAdUtil;
import com.hanju.video.app.util.http.BasicTextHttpResponseHandler;
import com.hanju.video.app.util.http.HttpApiUtil;
import com.hanju.video.app.R;
@@ -72,6 +80,10 @@
import com.hanju.lib.library.util.SystemCommon;
import com.hanju.lib.library.util.common.DimenUtils;
import com.hanju.lib.library.util.common.StringUtils;
import com.qq.e.ads.cfg.VideoOption;
import com.qq.e.ads.interstitial2.UnifiedInterstitialAD;
import com.qq.e.ads.interstitial2.UnifiedInterstitialADListener;
import com.qq.e.comm.util.AdError;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.UMShareListener;
@@ -83,7 +95,9 @@
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -219,8 +233,6 @@
            resourceId = bundle.getString("ResourceId");
            detailid = bundle.getString("DetailId");
        }
        //TODO 测试
        videoInfo.setId("8457562");
        if (!StringUtils.isNumeric(videoInfo.getId())) {
            iv_favourite.setVisibility(View.GONE);
        } else {
@@ -292,15 +304,35 @@
        AdUtil.AD_TYPE adType = AdUtil.getAdType(getApplicationContext(), AdPositionEnum.videoDetailFullVideo);
        if (adType != null) {
            String pid = AdUtil.getAdPid(getApplicationContext(), AdPositionEnum.videoDetailFullVideo);
            try {
                FullVideoAdManager.getInstance().loadAd(getApplicationContext(), pid, new FullVideoAdManager.IFullVideoAdListener() {
            if (TTAdSdk.isInitSuccess() && adType == AdUtil.AD_TYPE.csj) {
                try {
                    FullVideoAdManager.getInstance().loadAd(VideoDetailActivity.this, AdUtil.AD_TYPE.csj, pid, new FullVideoAdManager.IFullVideoAdListener() {
                        @Override
                        public void onFail(String msg) {
                        }
                        @Override
                        public void onFinish() {
                        }
                    });
                } catch (Exception e) {
                }
            } else {
                FullVideoAdManager.getInstance().loadAd(VideoDetailActivity.this, AdUtil.AD_TYPE.gdt, GDTADConstant.PID_VIDEO_DETAIL_INSERT, new FullVideoAdManager.IFullVideoAdListener() {
                    @Override
                    public void onSuccess() {
                        FullVideoAdManager.getInstance().showAd(VideoDetailActivity.this);
                    public void onFail(String msg) {
                    }
                    @Override
                    public void onFinish() {
                    }
                });
            } catch (Exception e) {
            }
        }
    }
@@ -349,7 +381,6 @@
    private void clickPlay() {
        if (playUrl == null) {
            SingleToast.showToast(VideoDetailActivity.this, "初始化播放路径中,请稍候点击播放!");
            return;
        }
@@ -436,10 +467,14 @@
                String tempUrl = playUrl.getUrl();
                List<VideoPlayUrlParseFragment.ParseParams> parseParams = new ArrayList<>();
                String js = "function parseResult(url, data) {console.log(data);  try {var result =JSON.parse( data);if (result.code == 200) {return result.url.replace('/\"/g', '');}} catch (e) {if (url.indexOf('.m3u8') > -1) { return url;}}return null;};";
                String js = "function parseResult(url, data) {console.log(data);  try {var result =JSON.parse( data);if (result.code == 200) {return result.url.replace('/\"/g', '');}} catch (e) {if (url.indexOf('.m3u8') > -1) { " +
                         "return url;"+
                        "}}return null;};";
                parseParams.add(new VideoPlayUrlParseFragment.ParseParams("^(https://){1}.*(\\.m3u8)$", js, false));
                parseParams.add(new VideoPlayUrlParseFragment.ParseParams("^(https://jx\\.bolecdn\\.com/index2\\.php\\?url=){1}.*", js, false));
                parseParams.add(new VideoPlayUrlParseFragment.ParseParams("^(https://chaoren\\.sc2yun\\.com/superman\\.php)", js, true));
                videoPlayUrlParseFragment.startParse(tempUrl, parseParams, new VideoPlayUrlParseFragment.IVideoParseListener() {
@@ -815,12 +850,37 @@
                                    update();
                                }
                                Gson gson = new GsonBuilder().setFieldNamingPolicy(
                                        FieldNamingPolicy.UPPER_CAMEL_CASE)
                                        .create();
                                final VideoInfo videoInfo = gson
                                        .fromJson(jsonObject.getJSONObject("Data")
                                                        .toString(),
                                //判断PPTV,
                                JSONObject data = jsonObject.optJSONObject("Data");
                                boolean pptv = data.optBoolean("pptv", false);
                                if (pptv) {
                                    String playUrl = data.optString("playUrl");
                                    mAquery.id(R.id.fl_pptv).visibility(View.VISIBLE);
                                    mAquery.id(R.id.rl_page).visibility(View.GONE);
                                    PPTVPlayFragment pptvPlayFragment = new PPTVPlayFragment();
                                    Bundle bundle = new Bundle();
                                    bundle.putString("playUrl", playUrl);
                                    bundle.putString("videoId", data.optString("videoId"));
                                    bundle.putString("name", data.optString("name"));
                                    bundle.putBoolean("vip", data.optBoolean("vip", false));
                                    pptvPlayFragment.setArguments(bundle);
                                    getSupportFragmentManager().beginTransaction().replace(R.id.fl_pptv, pptvPlayFragment).commit();
                                    if (progressDialog.isShowing()) {
                                        progressDialog.dismiss();
                                    }
                                    return;
                                } else {
                                    mAquery.id(R.id.fl_pptv).visibility(View.GONE);
                                    mAquery.id(R.id.rl_page).visibility(View.VISIBLE);
                                }
                                final VideoInfo videoInfo =  JsonUtil.videoGson
                                        .fromJson(data.toString(),
                                                new TypeToken<VideoInfo>() {
                                                }.getType());
@@ -858,13 +918,31 @@
                                initResource();
                                if (StringUtils.isEmpty(videoInfo.getPlayPicture())) {
                                    Glide.with(getApplicationContext())
                                            .load(videoInfo.getPicture()).apply(new RequestOptions().centerCrop()).into(target);
                                } else {
                                    Glide.with(getApplicationContext())
                                            .load(videoInfo.getPlayPicture()).apply(new RequestOptions().centerCrop()).into(target);
                                String playPicture = videoInfo.getPlayPicture();
                                if (StringUtils.isEmpty(playPicture)) {
                                    playPicture = videoInfo.getPicture();
                                }
                                RequestBuilder<Drawable> requestBuilder = null;
                                GlideUrl glideUrl = new GlideUrl(playPicture, new Headers() {
                                    @Override
                                    public Map<String, String> getHeaders() {
                                        Map<String, String> map = new HashMap<>();
                                        map.put("Referer", "https://www.hmtv.me/");
                                        map.put("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14 Safari/602.1");
                                        return map;
                                    }
                                });
                                if (playPicture != null && playPicture.contains("hmtv.me")) {
                                    requestBuilder = Glide.with(getApplicationContext()).load(glideUrl);
                                } else {
                                    requestBuilder = Glide.with(getApplicationContext()).load(playPicture);
                                }
                                requestBuilder.apply(new RequestOptions().centerCrop()).into(target);
                                if (isSetup) {
                                    int position = getIntent().getIntExtra(
                                            "playing_position", 0);
@@ -962,10 +1040,8 @@
                                                 Header[] headers, JSONObject jsonObject)
                            throws Exception {
                        if (jsonObject.getBoolean("IsPost")) {
                            Gson gson = new GsonBuilder().setFieldNamingPolicy(
                                    FieldNamingPolicy.UPPER_CAMEL_CASE)
                                    .create();
                            VideoResource resource = gson.fromJson(
                            VideoResource resource =  JsonUtil.videoGson.fromJson(
                                    jsonObject.getJSONObject("Data")
                                            .getJSONObject("Resource")
                                            .toString(),
@@ -989,6 +1065,8 @@
                                startPlay();
                                isClick = false;
                            }
                        } else {
                            Toast.makeText(getApplicationContext(), jsonObject.optString("Error"), Toast.LENGTH_SHORT).show();
                        }
                    }
                });
@@ -1047,6 +1125,8 @@
                }
                break;
            case R.id.tv_resource:
                if (popupWindow == null)
                    return;
                if (popupWindow.isShowing()) {
                    // bug:listview 中的isShowing()可以正确获取而到了这里就一直不进入,原因是pop没设置焦点获取
                    popupWindow.dismiss();
@@ -1167,10 +1247,9 @@
            values.put(WatchHistoryTable.VIDEO_DETAIL_ID, videoDetailId);
            values.put(WatchHistoryTable.VIDEO_THIRD_TYPE,
                    videoInfo.getThirdType());
            Gson gson = new GsonBuilder().setFieldNamingPolicy(
                    FieldNamingPolicy.UPPER_CAMEL_CASE).create();
            values.put(WatchHistoryTable.VIDEO_DETAIL,
                    gson.toJson(videoInfo));
                    JsonUtil.videoGson.toJson(videoInfo));
            values.put(WatchHistoryTable.WATCH_TIME, 0);
            values.put(WatchHistoryTable.VIDEO_RESOURCE, from);
            values.put(WatchHistoryTable.VIDEO_RESOURCE_ID, resoureID);