Commit 6a5b68ed authored by zxhljwl's avatar zxhljwl

修改

parent aa0927d3
......@@ -38,6 +38,7 @@ dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
api fileTree(include: ['*.aar'], dir: 'libs')
implementation project(path: ':zxhcsdk')
api 'com.android.support:design:28.0.0'
api 'com.android.support:support-v4:28.0.0'
//api 'com.android.support:design:28.0.0'
//api 'com.android.support:support-v4:28.0.0'
implementation 'androidx.appcompat:appcompat:1.0.2'
}
\ No newline at end of file
......@@ -12,6 +12,7 @@ import com.ym.zxhcsdk.HcDownLoadUtils;
import com.ym.zxhcsdk.HcAdBean;
import com.ym.zxhcsdk.PhoneUtils;
import com.ym.zxhcsdk.ZXHCConstant;
import com.ym.zxhcsdk.ads.RewardVideoPlayerUtils;
import com.ym.zxhcsdk.ads.RewardvideoPortraitADActivity;
import com.ym.zxhcsdk.listener.FeedAdListener;
import com.ym.zxhcsdk.listener.RewardVideoAdLoadListener;
......@@ -126,7 +127,12 @@ public class MainActivity extends Activity {
RewardAd();
}
});
findViewById(R.id.RewardAd_show).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, RewardvideoPortraitADActivity.class));
}
});
}
......@@ -166,11 +172,13 @@ public class MainActivity extends Activity {
}
private void RewardAd(){
new ZXHCRewardVideoAD(this,"1100139").loadRewardAD(new RewardVideoAdLoadListener() {
private void RewardAd() {
ZXHCRewardVideoAD zxhcRewardVideoAD = new ZXHCRewardVideoAD(this,"1100139");
zxhcRewardVideoAD.loadRewardAD(new RewardVideoAdLoadListener() {
@Override
public void OnAdLoaded() {
startActivity(new Intent(MainActivity.this, RewardvideoPortraitADActivity.class));
RewardVideoPlayerUtils.getInstance().setVideo(zxhcRewardVideoAD);
}
@Override
......
......@@ -28,7 +28,12 @@
android:id="@+id/RewardAd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="激励视频"></Button>
android:text="加载激励视频"></Button>
<Button
android:id="@+id/RewardAd_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="播放激励视频"></Button>
<FrameLayout
android:id="@+id/test_img_ad"
android:layout_width="wrap_content"
......
......@@ -14,6 +14,6 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app"s APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=false
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=false
\ No newline at end of file
android.enableJetifier=true
\ No newline at end of file
......@@ -32,9 +32,11 @@ dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
api fileTree(include: ['*.aar'], dir: 'libs')
api 'com.android.support:design:28.0.0'
api 'com.android.support:support-v4:28.0.0'
//api 'com.android.support:design:28.0.0'
//api 'com.android.support:support-v4:28.0.0'
// implementation 'com.android.support:appcompat-v7:28.0.0'
// implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.github.badoo:android-weak-handler:1.2'
implementation 'androidx.core:core:1.3.2'
implementation 'androidx.appcompat:appcompat:1.0.2'
}
\ No newline at end of file
......@@ -28,7 +28,7 @@
</activity>
<provider
android:name="android.support.v4.content.FileProvider"
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.zxhc.fileProvider"
android:exported="false"
android:grantUriPermissions="true">
......
......@@ -39,6 +39,29 @@ public class HcAdBean {
private boolean isClickDpLinkSucReport;
private boolean isClickDpLinkfailReport;
//Video
private int video_duration;
private String video_url;
private String video_cover_image;
private String video_end_image;
private String video_endpage_html;
private String video_endbuttonurl;
private String video_icon_url;
private String video_title;
private String video_desc;
private String video_iconbuttontext;
private List<String> video_start;
private List<String> video_one_quarter;
private List<String> video_one_half;
private List<String> video_three_quarter;
private List<String> video_complete;
private List<String> video_pause;
private List<String> video_resume;
private List<String> video_skip;
private List<String> video_close;
public boolean isClickDpLinkSucReport() {
return isClickDpLinkSucReport;
}
......@@ -307,4 +330,156 @@ public class HcAdBean {
public void setDpFailmonitorUrls(List<String> dpFailmonitorUrls) {
this.dpFailmonitorUrls = dpFailmonitorUrls;
}
public int getVideo_duration() {
return video_duration;
}
public void setVideo_duration(int video_duration) {
this.video_duration = video_duration;
}
public String getVideo_url() {
return video_url;
}
public void setVideo_url(String video_url) {
this.video_url = video_url;
}
public String getVideo_cover_image() {
return video_cover_image;
}
public void setVideo_cover_image(String video_cover_image) {
this.video_cover_image = video_cover_image;
}
public String getVideo_end_image() {
return video_end_image;
}
public void setVideo_end_image(String video_end_image) {
this.video_end_image = video_end_image;
}
public String getVideo_endpage_html() {
return video_endpage_html;
}
public void setVideo_endpage_html(String video_endpage_html) {
this.video_endpage_html = video_endpage_html;
}
public String getVideo_endbuttonurl() {
return video_endbuttonurl;
}
public void setVideo_endbuttonurl(String video_endbuttonurl) {
this.video_endbuttonurl = video_endbuttonurl;
}
public String getVideo_icon_url() {
return video_icon_url;
}
public void setVideo_icon_url(String video_icon_url) {
this.video_icon_url = video_icon_url;
}
public String getVideo_title() {
return video_title;
}
public void setVideo_title(String video_title) {
this.video_title = video_title;
}
public String getVideo_desc() {
return video_desc;
}
public void setVideo_desc(String video_desc) {
this.video_desc = video_desc;
}
public String getVideo_iconbuttontext() {
return video_iconbuttontext;
}
public void setVideo_iconbuttontext(String video_iconbuttontext) {
this.video_iconbuttontext = video_iconbuttontext;
}
public List<String> getVideo_start() {
return video_start;
}
public void setVideo_start(List<String> video_start) {
this.video_start = video_start;
}
public List<String> getVideo_one_quarter() {
return video_one_quarter;
}
public void setVideo_one_quarter(List<String> video_one_quarter) {
this.video_one_quarter = video_one_quarter;
}
public List<String> getVideo_one_half() {
return video_one_half;
}
public void setVideo_one_half(List<String> video_one_half) {
this.video_one_half = video_one_half;
}
public List<String> getVideo_three_quarter() {
return video_three_quarter;
}
public void setVideo_three_quarter(List<String> video_three_quarter) {
this.video_three_quarter = video_three_quarter;
}
public List<String> getVideo_complete() {
return video_complete;
}
public void setVideo_complete(List<String> video_complete) {
this.video_complete = video_complete;
}
public List<String> getVideo_pause() {
return video_pause;
}
public void setVideo_pause(List<String> video_pause) {
this.video_pause = video_pause;
}
public List<String> getVideo_resume() {
return video_resume;
}
public void setVideo_resume(List<String> video_resume) {
this.video_resume = video_resume;
}
public List<String> getVideo_skip() {
return video_skip;
}
public void setVideo_skip(List<String> video_skip) {
this.video_skip = video_skip;
}
public List<String> getVideo_close() {
return video_close;
}
public void setVideo_close(List<String> video_close) {
this.video_close = video_close;
}
}
......@@ -10,11 +10,9 @@ import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.support.v4.content.FileProvider;
import android.text.TextUtils;
import androidx.core.content.FileProvider;
import java.io.File;
import static android.content.Context.DOWNLOAD_SERVICE;
public class HcDownLoadUtils {
......
......@@ -18,17 +18,15 @@ import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.Display;
import android.webkit.WebSettings;
import androidx.core.app.ActivityCompat;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
......
package com.ym.zxhcsdk.ads;
import com.ym.zxhcsdk.view.ZXHCRewardVideoAD;
import java.util.ArrayList;
import java.util.List;
public class RewardVideoPlayerUtils {
public List<ZXHCRewardVideoAD> list = new ArrayList<>();
public static RewardVideoPlayerUtils rewardVideoPlayerUtils;
public static RewardVideoPlayerUtils getInstance() {
if (rewardVideoPlayerUtils == null) {
rewardVideoPlayerUtils = new RewardVideoPlayerUtils();
}
return rewardVideoPlayerUtils;
}
public void setVideo(ZXHCRewardVideoAD zxhcRewardVideoAD) {
list.add(zxhcRewardVideoAD);
}
public ZXHCRewardVideoAD getVideo() {
if (null != list && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).isLoadFinish) {
return list.get(i);
}
}
}
return null;
}
}
......@@ -4,19 +4,18 @@ import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.annotation.NonNull;
import android.util.Log;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.badoo.mobile.util.WeakHandler;
import com.ym.zxhcsdk.R;
import com.ym.zxhcsdk.view.ZXHCRewardVideoAD;
import java.io.IOException;
......@@ -35,24 +34,24 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo
private ImageView TopClose;
private WeakHandler mHandler;
public ZXHCRewardVideoAD mZxhcRewardVideoAD;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rewardvideo_portrait_a_d);
mHandler = new WeakHandler();
bindViews();
mZxhcRewardVideoAD = RewardVideoPlayerUtils.getInstance().getVideo();
if (null != mZxhcRewardVideoAD) {
mPlayer =mZxhcRewardVideoAD.mMediaPlayer;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
return true;
}
return super.onKeyDown(keyCode, event);
mHandler = new WeakHandler();
bindViews();
}
private void bindViews() {
sfv_reward_show = findViewById(R.id.sfv_reward_video_ad_show);
frameView = findViewById(R.id.frame_content);
......@@ -67,7 +66,10 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo
surfaceHolder.addCallback(this);
SetAdVideo();
// mPlayer = new MediaPlayer();
// mPlayer.setDataSource("https://zx-cdn.zhangxinhulian.com/file/2020/5/8447fa5488ee19a54d2adbe8d127693045540211.mp4");
// // mPlayer.setDisplay(surfaceHolder);
// mPlayer.prepareAsync();
TopClose.setOnClickListener(new View.OnClickListener() {
@Override
......@@ -82,64 +84,15 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo
TopTimeTv.setVisibility(View.VISIBLE);
}
@Override
protected void onResume() {
super.onResume();
if (mPlayer!=null){
if (!mPlayer.isPlaying()){
mPlayer.start();
}
}
}
@Override
protected void onPause() {
super.onPause();
if (mPlayer!=null){
if (mPlayer.isPlaying()){
mPlayer.pause();
}
}
}
@Override
protected void onDestroy() {
if (mPlayer!=null){
mPlayer.release();
mPlayer=null;
}
super.onDestroy();
}
@Override
public void surfaceCreated(@NonNull SurfaceHolder holder) {
Log.d("wxw", "surfaceCreated");
if (mPlayer!=null){
mPlayer.setDisplay(surfaceHolder);
return;
// return;
}
try {
mPlayer = new MediaPlayer();
mPlayer.setDataSource("https://zx-cdn.zhangxinhulian.com/file/2020/5/8447fa5488ee19a54d2adbe8d127693045540211.mp4");
mPlayer.setDisplay(surfaceHolder);
mPlayer.prepareAsync();
//网络流媒体的缓冲监听
mPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
Log.d("wxw", "percent" + percent);
if (percent==100){
mp.start();
}
Log.d("wxw", "mp.getCurrentPosition() " + mp.getCurrentPosition());
}
});
//网络流媒体播放结束监听
mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
......@@ -174,9 +127,7 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo
});
//mPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
......@@ -214,5 +165,40 @@ public class RewardvideoPortraitADActivity extends Activity implements SurfaceHo
countDownTimer.start();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onResume() {
super.onResume();
if (mPlayer!=null){
if (!mPlayer.isPlaying()){
mPlayer.start();
}
}
}
@Override
protected void onPause() {
super.onPause();
if (mPlayer!=null){
if (mPlayer.isPlaying()){
mPlayer.pause();
}
}
}
@Override
protected void onDestroy() {
if (mPlayer!=null){
mPlayer.release();
mPlayer=null;
}
super.onDestroy();
}
}
\ No newline at end of file
......@@ -11,5 +11,4 @@ public interface RewardVideoAdLoadListener {
/// 激励视频广告各种错误信息回调
/// </summary>
void OnLoadError(String error);
}
package com.ym.zxhcsdk.view;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.media.MediaPlayer;
import android.util.Log;
import com.ym.zxhcsdk.HcAdBean;
import com.ym.zxhcsdk.HttpClientUtils;
import com.ym.zxhcsdk.PhoneUtils;
import com.ym.zxhcsdk.ZXHCConstant;
import com.ym.zxhcsdk.listener.FeedAdListener;
import com.ym.zxhcsdk.listener.RewardVideoAdLoadListener;
import java.io.IOException;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
public class ZXHCRewardVideoAD {
public class ZXHCRewardVideoAD implements Serializable {
private Activity context;
private String codeId;
public MediaPlayer mMediaPlayer;
public boolean isLoadFinish;
public ZXHCRewardVideoAD(Activity context, String codeId) {
this.context = context;
this.codeId = codeId;
}
private HcAdBean adBean;
public void loadRewardAD(RewardVideoAdLoadListener mlistener) {
Map<String, String> map = new HashMap<>();
......@@ -50,6 +53,28 @@ public class ZXHCRewardVideoAD {
if (adBean.getSrcUrls().size() > 0) {
}
try {
isLoadFinish = false;
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource("https://zx-cdn.zhangxinhulian.com/file/2020/5/8447fa5488ee19a54d2adbe8d127693045540211.mp4");
// mPlayer.setDisplay(surfaceHolder);
mMediaPlayer.prepareAsync();
//网络流媒体的缓冲监听
mMediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
Log.d("wxw", "percent" + percent);
if (percent==100){
// mp.start();
isLoadFinish = true;
}
Log.d("wxw", "mp.getCurrentPosition() " + mp.getCurrentPosition());
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
......@@ -66,5 +91,4 @@ public class ZXHCRewardVideoAD {
}
});
}
}
......@@ -2,30 +2,20 @@ package com.ym.zxhcsdk.webview;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Message;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.View;
import android.webkit.DownloadListener;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.ym.zxhcsdk.HcAppliContext;
import com.ym.zxhcsdk.R;
import com.ym.zxhcsdk.ZXHCConstant;
import java.util.List;
import java.util.Locale;
public class HcWebActivity extends Activity {
private String url;
private HcCustomWebView webView;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment