Browse Source

1,添加了播放函数参数的合法性判断

lyn 5 years ago
parent
commit
a6a874f843

+ 1 - 1
app/build.gradle

@@ -14,7 +14,7 @@ android {
             abiFilters 'armeabi', 'armeabi-v7a', 'x86'
         }
 
-        buildConfigField "int", "player_type", "3"; //播放器类型;1,原生;2,未来;3,GsyPlayer
+        buildConfigField "int", "player_type", "2"; //播放器类型;1,原生;2,未来;3,GsyPlayer
     }
 
 

+ 11 - 3
app/src/main/java/com/haochuan/hciptvbasic/MainActivity.java

@@ -18,9 +18,17 @@ public class MainActivity extends BaseWebActivity {
         super.onCreate(savedInstanceState);
 
         //test
-        String playParamJson = "{\n" +
+        /*String playParamJson = "{\n" +
+                "    \"type\": 1,\n" +
+                "    \"url\": \"https://gzhc-sxrj.oss-cn-shenzhen.aliyuncs.com/gzhc-djbl/djbl01.mp4\",\n" +
+                "    \"code\": 88,\n" +
+                "    \"seek_time\": 3,\n" +
+                "    \"x\": 32,\n" +
+                "    \"y\": 64,\n" +
+                "    \"width\": 320,\n" +
+                "    \"height\": 180,\n" +
                 "    \"examine_id\": 200000253,\n" +
-                "    \"url\": \"https://gzhc-sxrj.oss-cn-shenzhen.aliyuncs.com/gzhc-djbl/djbl01.mp4\"\n" +
+                "    \"examine_type\": \"program\"\n" +
                 "}";
         int state = getPlayerToJS().getPlayerStatus();
 
@@ -29,7 +37,7 @@ public class MainActivity extends BaseWebActivity {
             public void run() {
                 getPlayerToJS().play(playParamJson);
             }
-        },10000);
+        },10000);*/
         /*new Timer().schedule(new TimerTask() {
             @Override
             public void run() {

+ 10 - 3
app/src/main/java/com/haochuan/hciptvbasic/test/TestActivity.java

@@ -30,10 +30,17 @@ public class TestActivity extends BaseWebActivity {
         timer = new Timer();
         Button playBtn = findViewById(R.id.play_btn);
         playBtn.setOnClickListener(v -> {
-            String playParamJson = "{\n" +
-                    "    \"examine_id\": 200000253,\n" +
+            String playParamJson =  "{\n" +
+                    "    \"type\": 1,\n" +
                     "    \"url\": \"https://gzhc-sxrj.oss-cn-shenzhen.aliyuncs.com/gzhc-djbl/djbl01.mp4\",\n" +
-                    "    \"seek_time\": 5\n" +
+                    "    \"code\": 88,\n" +
+                    "    \"seek_time\": 3,\n" +
+                    "    \"x\": 32,\n" +
+                    "    \"y\": 64,\n" +
+                    "    \"width\": 320,\n" +
+                    "    \"height\": 180,\n" +
+                    "    \"examine_id\": 200000253,\n" +
+                    "    \"examine_type\": \"program\"\n" +
                     "}";
             getPlayerToJS().play(playParamJson);
             playBtn.requestFocus();

+ 18 - 4
app/src/main/java/com/haochuan/hciptvbasic/webview/PlayerToJS.java

@@ -4,6 +4,7 @@ import android.animation.PropertyValuesHolder;
 import android.animation.ValueAnimator;
 import android.app.Activity;
 import android.content.Context;
+import android.net.DhcpInfo;
 import android.text.TextUtils;
 import android.view.ViewGroup;
 import android.view.animation.LinearInterpolator;
@@ -148,8 +149,8 @@ public class PlayerToJS {
             String seekTime = JSONUtil.getString(playParam,"seek_time","0");
             String x = JSONUtil.getString(playParam,"x","0");
             String y = JSONUtil.getString(playParam,"y","0");
-            String width = JSONUtil.getString(playParam,"width","1280");
-            String height = JSONUtil.getString(playParam,"height","720");
+            String width = JSONUtil.getString(playParam,"width","0");
+            String height = JSONUtil.getString(playParam,"height","0");
             String examineId = JSONUtil.getString(playParam,"examine_id","");
             String examineType = JSONUtil.getString(playParam,"examine_type","program");
             return videoPlay(url,seekTime,x,y,width,height,examineId,examineType);
@@ -321,20 +322,33 @@ public class PlayerToJS {
                 Logger.e(PARAM_ERROR,"调用play函数,url格式不正确,不能执行播放,请检查;url:" + url);
                 return PARAM_ERROR;
             }
+
+
             if(MathUtil.isDigitsOnly(x) && MathUtil.isDigitsOnly(y) && MathUtil.isDigitsOnly(width) && MathUtil.isDigitsOnly(height) && MathUtil.isDigitsOnly(seekTime)){
+
+                //判断x,y是否小于零
+                int Dx = Integer.parseInt(x);
+                int Dy = Integer.parseInt(y);
+                x = (Dx < 0?"0":x);
+                y = (Dy < 0?"0":y);
+
+
+
                 int screenWidth = ScreenSnap.getScreenWidth(context);
                 int screenHeight = ScreenSnap.getScreenHeight(context);
                 int transformX = (int) (Float.parseFloat(x) * screenWidth / 1280);
                 int transformY = (int) (Float.parseFloat(y) * screenHeight / 720);
-                int transformWidth = (int) (Float.parseFloat(width) * screenWidth / 1280);
-                int transformHeight = (int) (Float.parseFloat(height) * screenHeight / 720);
+                int transformWidth = (int) (Float.parseFloat(String.valueOf(width)) * screenWidth / 1280);
+                int transformHeight = (int) (Float.parseFloat(String.valueOf(height)) * screenHeight / 720);
 
                 int transformSeekTime = Integer.parseInt(seekTime);
+                transformSeekTime = transformSeekTime < 0 ? 0 :transformSeekTime;
                 if(transformSeekTime < 0){
                     transformSeekTime = 0;
                 }else{
                     transformSeekTime *= 1000;
                 }
+
                 final int realSeekTime = transformSeekTime;
 
                 Logger.d(String.format("调用播放函数。转换坐标(%s, %s),宽高(%s, %s)", transformX, transformY, transformWidth, transformHeight));

+ 0 - 2
gsyvideo/src/main/java/com/haochuan/gsyvideo/HCGsyVideoPlayer.java

@@ -33,8 +33,6 @@ public class HCGsyVideoPlayer extends BaseMediaPlayer{
         init(context);
     }
 
-
-
     /*
     * 初始化
     * */