From 1981dee5aec45793d3c4ebdbc4e637528c71b3c5 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 03 二月 2021 19:20:47 +0800
Subject: [PATCH] 'PPTV'
---
BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java | 153 +++++++++++++++++++++++++++++---------------------
1 files changed, 89 insertions(+), 64 deletions(-)
diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java
index 0f506f4..3be524a 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/video/FunshionPlayerFragment.java
@@ -41,10 +41,9 @@
import com.fun.xm.ad.FSThirdAd;
import com.fun.xm.ad.adloader.FSSRFeedAdLoader;
import com.fun.xm.ad.adview.FSFeedAD;
-import com.fun.xm.ad.adview.FSPreMediaView;
import com.fun.xm.ad.callback.FSFeedAdCallBack;
+import com.fun.xm.ad.listener.FSADMediaListener;
import com.funshion.video.logger.FSLogcat;
-import com.funshion.video.util.FSError;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -53,10 +52,11 @@
import com.lcjian.library.widget.RatioLayout;
import com.qq.e.ads.cfg.VideoOption;
import com.qq.e.ads.nativ.MediaView;
-import com.qq.e.ads.nativ.NativeADMediaListener;
+import com.qq.e.ads.nativ.NativeADEventListener;
import com.qq.e.ads.nativ.NativeUnifiedADData;
import com.qq.e.comm.constants.AdPatternType;
import com.qq.e.comm.util.AdError;
+import com.umeng.analytics.MobclickAgent;
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
import com.weikou.beibeivideo.BeibeiVideoAPI;
import com.weikou.beibeivideo.BeibeiVideoApplication;
@@ -71,9 +71,9 @@
import com.weikou.beibeivideo.util.VideoUtil;
import com.weikou.beibeivideo.util.downutil.StringUtils;
import com.weikou.beibeivideo.util.ui.IPageEventListener;
-import com.yeshi.video.player.VideoDefinition;
-import com.yeshi.video.player.VideoEpisode;
-import com.yeshi.video.player.VideoPlayerController;
+import com.yeshi.video.player.common.VideoDefinition;
+import com.yeshi.video.player.common.VideoEpisode;
+import com.yeshi.video.player.common.VideoPlayerController;
import org.apache.http.Header;
import org.json.JSONObject;
@@ -83,6 +83,7 @@
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import de.greenrobot.event.EventBus;
@@ -119,8 +120,6 @@
//椋庤骞垮憡鍔犺浇鍣�
private FSSRFeedAdLoader fssrFeedAdLoader;
-
- private FSPreMediaView mFSVideoAD;
private FunshionPlayInfo playInfo;
@@ -192,6 +191,7 @@
@Override
public void onAdLoadedFail(int i, String s) {
Log.i(TAG, "onAdLoadedFail:" + s);
+ iadLoadListener.finishAd();
}
@Override
@@ -249,7 +249,8 @@
fsADView.bindAdToView(imageView, clickableViews, null);
} else if (fsad.isVideo()) {
MediaView mediaView = new MediaView(getContext());
- fsADView.bindMediaView(mediaView, getVideoOption(), new NativeADMediaListener() {
+
+ fsADView.bindMediaView(mediaView, getVideoOption(), new FSADMediaListener() {
@Override
public void onVideoClicked() {
@@ -262,7 +263,7 @@
}
@Override
- public void onVideoError(AdError adError) {
+ public void onVideoError(int i, String s) {
iadLoadListener.finishAd();
}
@@ -373,6 +374,28 @@
if (mLayoutInflater == null)
return;
gdtAd = ad;
+ gdtAd.setNativeAdEventListener(new NativeADEventListener() {
+ @Override
+ public void onADClicked() {
+ Log.v(TAG, "onADClicked");
+ }
+
+ @Override
+ public void onADError(AdError adError) {
+ Log.v(TAG, "onADError");
+ }
+
+ @Override
+ public void onADExposed() {
+ Log.v(TAG, "onADExposed");
+ }
+
+ @Override
+ public void onADStatusChanged() {
+ Log.v(TAG, "onADStatusChanged");
+ }
+ });
+
final View mContainer = mLayoutInflater.inflate(R.layout.item_funshion_gdt_ad_view, null);
mDownloadButton = mContainer.findViewById(R.id.btn_download);
mMediaView = mContainer.findViewById(R.id.gdt_media_view);
@@ -443,6 +466,7 @@
}
//浣滀负customClickableViews浼犲叆锛岀偣鍑讳笉杩涘叆璇︽儏椤碉紝鐩存帴涓嬭浇鎴栬繘鍏ヨ惤鍦伴〉锛屽彧鏈夎棰戝箍鍛婄敓鏁堬紝
// 濡傛灉鏄浘鏂囷紝clickableViews鍜宑ustomClickableViews鐐瑰嚮閫昏緫涓�鑷�
+
fsADView.bindAdToView(mContainer, clickableViews, mDownloadButton);
if (ad.getAdPatternType() == AdPatternType.NATIVE_VIDEO) {
@@ -453,14 +477,13 @@
Log.v(TAG, "showAd type video 2");
mImagePoster.setVisibility(View.GONE);
mMediaView.setVisibility(View.VISIBLE);
-// ad.startVideo();
}
});
//4绉掑唴瑙嗛杩樻病鍔犺浇瀹屾垚鐨勮瘽灏辫烦杩�
tv_skip.removeCallbacks(playADErrorRunnable);
- tv_skip.postDelayed(playADErrorRunnable, 4000);
- fsADView.bindMediaView(mMediaView, getVideoOption(), new NativeADMediaListener() {
+ tv_skip.postDelayed(playADErrorRunnable, 10000);
+ fsADView.bindMediaView(mMediaView, getVideoOption(), new FSADMediaListener() {
@Override
public void onVideoInit() {
Log.d(TAG, "onVideoInit: ");
@@ -527,12 +550,17 @@
}
@Override
- public void onVideoError(AdError error) {
+ public void onVideoError(int i, String s) {
iadLoadListener.finishAd();
}
-
});
- ad.startVideo();
+// mMediaView.post(new Runnable() {
+// @Override
+// public void run() {
+// ad.startVideo();
+// }
+// });
+
} else if (ad.getAdPatternType() == AdPatternType.NATIVE_2IMAGE_2TEXT ||
ad.getAdPatternType() == AdPatternType.NATIVE_1IMAGE_2TEXT) {
@@ -562,16 +590,12 @@
private void adShowFinish(FunshionPlayInfo info) {
fl_ad.setVisibility(View.GONE);
fl_ad.removeAllViews();
- mFSVideoAD = null;
//鎾斁瑙嗛
mVideoSurfView.postDelayed(new Runnable() {
@Override
public void run() {
//鎾斁瑙嗛
- if (!StringUtils.isNullOrEmpty(info.getPlayUrl().getAid()))
- playMedia(info.getPlayUrl().getAid(), (info.getPosition() + 1) + "");
- else
- playVideo(info.getPlayUrl().getVid());
+ playVideo(info.getPlayUrl().getCode());
}
}, 1000);
}
@@ -626,7 +650,7 @@
/**
* 鎾斁瑙嗛
*/
- public synchronized void playVideo(String videoID) {
+ public synchronized void playVideo(String code) {
createPlayer();
if (mVideoPlayer.isPlaying()) {
FSLogcat.e(TAG, "Call player to stop");
@@ -635,36 +659,15 @@
}
//锛侊紒锛佹敞鎰忔挱鏀鹃暱鐭棰戞瀯寤虹殑FSVideoReqData鏈夊尯鍒�傜煭瑙嗛娌℃湁epso鍒嗛泦ID銆傞暱瑙嗛鏈夈�傚~鍐欓敊璇皢鏃犳硶姝e父鎾斁
//FSVideoReqData鏋勫缓闇�瑕佺殑鏁版嵁闇�瑕佷粠鏈嶅姟鍣ㄨ幏鍙栥�備富瑕佹槸濯掍綋璧勬簮videoID锛氣�淰IDEO_ID鈥� 榛樿 娓呮櫚搴︼細new Definition(Definition.CLARITY_LOW) 浠ュ強Accesstoken锛欰ccesstoken
- mFSVideoReqData = new FSVideoReqData(videoID, new Definition(Definition.CLARITY_LOW), FunshionConstant.ACCESS_TOKEN);
+ mFSVideoReqData = new FSVideoReqData(code, new Definition(Definition.CLARITY_SUPPER));
try {
Log.d(TAG, "request");
- mFunshionIVideoPlayer.requestAndPrepare(mFSVideoReqData, FunshionConstant.APICODE);
+ mFunshionIVideoPlayer.requestAndPrepare(mFSVideoReqData);
} catch (Exception e) {
e.printStackTrace();
}
}
-
- /**
- * 鎾斁濯掍綋
- */
- public synchronized void playMedia(String mediaID, String epso) {
- createPlayer();
- if (mVideoPlayer.isPlaying()) {
- FSLogcat.e(TAG, "Call player to stop");
- mVideoPlayer.stop();
- mVideoPlayer.reset();
- }
- //锛侊紒锛佹敞鎰忔挱鏀鹃暱鐭棰戞瀯寤虹殑FSVideoReqData鏈夊尯鍒�傜煭瑙嗛娌℃湁epso鍒嗛泦ID銆傞暱瑙嗛鏈夈�傚~鍐欓敊璇皢鏃犳硶姝e父鎾斁
- //FSVideoReqData鏋勫缓闇�瑕佺殑鏁版嵁闇�瑕佷粠鏈嶅姟鍣ㄨ幏鍙栥�備富瑕佹槸濯掍綋璧勬簮videoID锛氣�淰IDEO_ID鈥漞pso 濯掍綋鍒嗛泦ID 榛樿 娓呮櫚搴︼細new Definition(Definition.CLARITY_LOW) 浠ュ強Accesstoken锛欰ccesstoken
- mFSVideoReqData = new FSVideoReqData(mediaID, epso, new Definition(Definition.CLARITY_LOW), FunshionConstant.ACCESS_TOKEN);
- try {
- Log.d(TAG, "request");
- mFunshionIVideoPlayer.requestAndPrepare(mFSVideoReqData, FunshionConstant.APICODE);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
public synchronized void stopPlay() {
if (mVideoPlayer != null && mVideoPlayer.isPlaying()) {
@@ -711,6 +714,11 @@
FSCallback mFSCall = new FSCallback() {
@Override
+ public void onFailed(com.funshion.playsdk.constant.FSError fsError) {
+ Log.d(TAG, fsError.errorMessage);
+ }
+
+ @Override
public void onDefinition(List<Definition> definitions, Definition currDefinition) {
for (Definition definition : definitions) {
Log.e("FE", "get Definition " + definition);
@@ -731,11 +739,6 @@
vdf.setClarity(mCurrDefinition.getStringDefinition());
vdf.setName(getDefinitionName(mCurrDefinition.getStringDefinition()));
vpc_funshion.setDefinition(vdfList, vdf);
- }
-
- @Override
- public void onFailed(FSError arg0) {
- Log.d(TAG, "onFailed" + arg0);
}
public void onReceiveUrl(String url) {
@@ -936,7 +939,8 @@
autoReSize(mediaPlayer);
else
autoReSize(mVideoPlayer);
- vpc_funshion.changeOrien(getActivity().getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ if (getActivity() != null)
+ vpc_funshion.changeOrien(getActivity().getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
//鐢垫睜鐢甸噺鐩戞帶
@@ -972,6 +976,13 @@
public void onEventMainThread(FunshionPlayInfo info) {
+ if (VideoUtil.videoEpisodeList == null || VideoUtil.videoEpisodeList.size() == 0) {
+ //鍔犺浇缂撳瓨鍐呭
+ VideoUtil.loadVideoEpisodeListCache(BeibeiVideoApplication.application);
+ }
+ //椋庤瑙嗛鎾斁
+ MobclickAgent.onEventObject(BeibeiVideoApplication.application, "funtv-play", new HashMap<>());
+
Log.i(TAG, "onEventMainThread:FunshionPlayInfo");
mCurrentPosition = info.getPosition();
List<VideoEpisode> episodes = new ArrayList<>();
@@ -987,19 +998,23 @@
episodes.add(es);
}
- vpc_funshion.setContentView(fl_container).setVideoInfo(episodes, info.getPosition(), mVideoInfo.getShowType(), "椋庤").setVideoPlayerListener(this).build(getActivity(), FunshionPlayerFragment.this);
- loadAD(new IADLoadListener() {
- @Override
- public void finishAd() {
- vpc_funshion.post(new Runnable() {
- @Override
- public void run() {
- tv_skip.setVisibility(View.GONE);
- adShowFinish(info);
- }
- });
- }
- });
+ try {
+ vpc_funshion.setContentView(fl_container).setVideoInfo(episodes, info.getPosition(), mVideoInfo.getShowType(), "椋庤").setVideoPlayerListener(this).build(getActivity(), FunshionPlayerFragment.this);
+ loadAD(new IADLoadListener() {
+ @Override
+ public void finishAd() {
+ vpc_funshion.post(new Runnable() {
+ @Override
+ public void run() {
+ tv_skip.setVisibility(View.GONE);
+ adShowFinish(info);
+ }
+ });
+ }
+ });
+ } catch (Exception e) {
+ Log.i(TAG, "鍑洪敊浜嗭細" + e.getMessage());
+ }
}
@@ -1054,6 +1069,14 @@
if (mVideoPlayer != null && mVideoPlayer.isPlaying())
mVideoPlayer.pause();
+ //鎾斁缁熻
+ BeibeiVideoAPI.playStatistic(BeibeiVideoApplication.application, mVideoInfo.getId(), videoResource.getId() + "", new BasicTextHttpResponseHandler() {
+ @Override
+ public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
+
+ }
+ });
+
BeibeiVideoAPI.getPlayUrl(BeibeiVideoApplication.application, uid, detailInfo.getType(), mVideoInfo.getId(),
detailInfo.getId(), videoResource.getId(), detailInfo.geteId(),
new BasicTextHttpResponseHandler() {
@@ -1083,6 +1106,8 @@
.optString("Params"));
info.setAid(data.optString("Aid"));
info.setVid(data.optString("Vid"));
+ info.setCode(jsonObject.getJSONObject("Data")
+ .optString("Code"));
playInfo.setPlayUrl(info);
mShowAd = false;
EventBus.getDefault().post(playInfo);
--
Gitblit v1.8.0