Browse Source

1,更改了测试代码
2,添加了一些注释

lyn 5 years ago
parent
commit
c42fb15d64

+ 1 - 1
app/build.gradle

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

+ 4 - 1
app/src/main/java/com/haochuan/hciptvbasic/BaseWebActivity.java

@@ -64,7 +64,7 @@ public abstract class BaseWebActivity extends AppCompatActivity {
         //初始化日志
         Logger.init(this,getWebView());
 
-        //如果是未来版本,需要先初始化其sdk
+        //如果是未来版本,需要先初始化其sdk;如果是其他版本,可以注释该段代码
         if(BuildConfig.player_type == 2){
             CNTVInit();
         }
@@ -156,6 +156,7 @@ public abstract class BaseWebActivity extends AppCompatActivity {
      */
     @Override
     public void onBackPressed() {
+        //如果是未来版本,请用这段代码
         if(CNTVLogin.getInstance().isOpenAdshow()){
             Log.d("djbl","onBackPressed close ad");
             ViewGroup viewGroup = (ViewGroup) getWindow().getDecorView();
@@ -164,6 +165,8 @@ public abstract class BaseWebActivity extends AppCompatActivity {
             utilToJS.onBackPressed();
         }
 
+        //如果是除未来其他版本,请用这段代码
+        //utilToJS.onBackPressed();
     }
 
     /*--------------------------初始化函数---------------------------*/

+ 51 - 2
app/src/main/java/com/haochuan/hciptvbasic/test/TestActivity.java

@@ -1,13 +1,22 @@
 package com.haochuan.hciptvbasic.test;
 
 import android.os.Bundle;
+import android.util.Log;
 import android.widget.Button;
 
 import com.haochuan.hciptvbasic.BaseWebActivity;
 import com.haochuan.hciptvbasic.R;
 
+import java.util.Timer;
+import java.util.TimerTask;
+
 public class TestActivity extends BaseWebActivity {
 
+
+    private Timer timer;
+    private TimerTask timerTask;
+    private String TAG = "TestActivity";
+
     @Override
     protected String getIndexURL() {
         return "";
@@ -18,15 +27,17 @@ public class TestActivity extends BaseWebActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_test);
-
+        timer = new Timer();
         Button playBtn = findViewById(R.id.play_btn);
         playBtn.setOnClickListener(v -> {
             String playParamJson = "{\n" +
                     "    \"examine_id\": 200000253,\n" +
-                    "    \"url\": \"https://gzhc-sxrj.oss-cn-shenzhen.aliyuncs.com/gzhc-djbl/djbl01.mp4\"\n" +
+                    "    \"url\": \"https://gzhc-sxrj.oss-cn-shenzhen.aliyuncs.com/gzhc-djbl/djbl01.mp4\",\n" +
+                    "    \"seek_time\": 5\n" +
                     "}";
             getPlayerToJS().play(playParamJson);
             playBtn.requestFocus();
+            checkStatus();
         });
 
         Button changeBtn = findViewById(R.id.change_btn);
@@ -88,6 +99,44 @@ public class TestActivity extends BaseWebActivity {
         //toolToJS.download("http://202.99.114.74:56251/dudu_youxi/h5/gameList/apk/jiSuKuangBiao.apk");
     }
 
+    private void checkStatus(){
+        timerTask = new TimerTask() {
+            @Override
+            public void run() {
+                int status  = getPlayerToJS().getPlayerStatus();
+                Log.d(TAG,"播放状态:" + getStatusMsg(status));
+            }
+        };
+        timer.schedule(timerTask,0,1000);
+    }
+
+    private String getStatusMsg(int status){
+        String statusMsg = "";
+        switch (status){
+            case 1:
+                statusMsg = "视频准备中";
+                break;
+            case 2:
+                statusMsg = "播放";
+                break;
+            case 3:
+                statusMsg = "暂停";
+                break;
+            case 4:
+                statusMsg = "缓冲";
+                break;
+            case 5:
+                statusMsg = "播放完成停止播放";
+                break;
+            case 6:
+                statusMsg = "未播放";
+                break;
+            default:
+                break;
+        }
+        return statusMsg;
+    }
+
     @Override
     protected void onStart(){
         super.onStart();

+ 24 - 1
systemvideo/src/main/java/com/haochuan/systemvideo/SystemVideoPlayer.java

@@ -12,6 +12,8 @@ import com.haochuan.core.BaseMediaPlayer;
 import com.haochuan.core.IVideoPlayer;
 import com.haochuan.core.Logger;
 
+import static com.haochuan.core.util.MessageCode.PLAYER_OBJ_NULL;
+
 public class SystemVideoPlayer extends BaseMediaPlayer {
 
     //全局参数
@@ -50,6 +52,7 @@ public class SystemVideoPlayer extends BaseMediaPlayer {
             iVideoPlayer.onPlaying();
             playerStatus = 2;
             mHadPrepared = true;
+            seekToStartTime();
         });
 
         videoView.setOnInfoListener((mp,what,extra) -> {
@@ -98,7 +101,7 @@ public class SystemVideoPlayer extends BaseMediaPlayer {
 
     @Override
     public void setStartTime(int time) {
-
+        this.startTime = time;
     }
 
     @Override
@@ -135,6 +138,7 @@ public class SystemVideoPlayer extends BaseMediaPlayer {
         videoView.stopPlayback();
         videoView.suspend();
         mHadPrepared = false;
+        playerStatus = 6;   //暂停中;
     }
 
     @Override
@@ -167,4 +171,23 @@ public class SystemVideoPlayer extends BaseMediaPlayer {
         this.iVideoPlayer = iVideoPlayer;
     }
 
+    /*----------------------功能函数-----------------------------*/
+    /*
+     * 在播放器准备好后,跳转到传入的startTime处
+     * */
+    private void seekToStartTime(){
+        if(videoView == null){
+            Logger.e(PLAYER_OBJ_NULL,"videoView is null, can`t seekToStartTime");
+            return;
+        }
+        if(startTime > 0){
+            if(startTime >= getDuration()){
+                //如果开始时间大于或者等于视频总时长,则跳转到距离结束5秒的位置
+                videoView.seekTo(getDuration() -5000);
+            }else{
+                videoView.seekTo(startTime);
+            }
+        }
+    }
+
 }

+ 0 - 1
weilai_video/src/main/java/com/haochuan/weilai_video/CNTVLogin.java

@@ -33,7 +33,6 @@ import java.io.File;
 
 import tv.icntv.adsdk.AdSDK;
 import tv.icntv.logsdk.logSDK;
-import tv.icntv.ottlogin.MD5;
 import tv.icntv.ottlogin.loginSDK;
 import tv.newtv.upgradesdk.upgradeSDK;