diff --git a/XixunPlayer/app/build.gradle b/XixunPlayer/app/build.gradle index ca4709c..2951d8e 100644 --- a/XixunPlayer/app/build.gradle +++ b/XixunPlayer/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 21 targetSdk 34 versionCode 1 - versionName "2.2.1-N" + versionName "2.2.4-N" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/XixunPlayer/app/libs/gnph.jar b/XixunPlayer/app/libs/gnph.jar index 49484bf..1e84bf1 100644 Binary files a/XixunPlayer/app/libs/gnph.jar and b/XixunPlayer/app/libs/gnph.jar differ diff --git a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java index 4250d1f..0035293 100644 --- a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java +++ b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java @@ -597,12 +597,6 @@ public class MainActivity extends Activity implements Choreographer.FrameCallbac } else if(showHide.act=='S') { showHide.src.show(); iter.remove(); - } else if(showHide.act=='V') { - if(showHide.src.view!=null) { - showHide.src.view.setAlpha(1); - ((SrcVideo)showHide.src.view).ijkPlayer.start(); - } - iter.remove(); } else if(showHide.run!=null) showHide.run.run(); } boolean noProg = progView == null && insView==null; diff --git a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java index 4900b81..c0965ab 100644 --- a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java +++ b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java @@ -760,7 +760,6 @@ public class Prog extends AbsLayout { src.startMilli = start + src.startTime; if(src.startTime == 0) { src.prepare(cur - src.startMilli); - if(src.typ=='V') shows.add(new MainActivity.ShowHide(src.startMilli+933, src, 'V')); shows.add(new MainActivity.ShowHide(src.startMilli+1000, src, 'S')); src.isShow = true; } @@ -789,7 +788,6 @@ public class Prog extends AbsLayout { else src.doEff(); } else if(milli < src.endMilli && milli >= src.startMilli) { src.prepare(milli - src.startMilli); - if(src.typ=='V') shows.add(new MainActivity.ShowHide(src.startMilli+933, src, 'V')); shows.add(new MainActivity.ShowHide(src.startMilli+1000, src, 'S')); src.isShow = true; } @@ -804,7 +802,6 @@ public class Prog extends AbsLayout { src.isShow = false; } else { src.prepare(0); - if(src.typ=='V') shows.add(new MainActivity.ShowHide(src.startMilli+933, src, 'V')); shows.add(new MainActivity.ShowHide(src.startMilli+1000, src, 'S')); src.isShow = true; } diff --git a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/SrcVideo.java b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/SrcVideo.java index ec8cab8..0390d82 100644 --- a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/SrcVideo.java +++ b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/SrcVideo.java @@ -27,7 +27,7 @@ public class SrcVideo extends TextureView implements TextureView.SurfaceTextureL ijkPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-avc", 1); ijkPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-hevc", 1); } - ijkPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0); + //ijkPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0); ijkPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzeduration", 1); ijkPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 12); try { @@ -36,14 +36,14 @@ public class SrcVideo extends TextureView implements TextureView.SurfaceTextureL ijkPlayer.setVolume(vol, vol); ijkPlayer.setOnPreparedListener((IMediaPlayer var1)->{ ijkPlayer.setOnPreparedListener(null); + if(getAlpha() < 0.25) { + ijkPlayer.pause(); + ijkPlayer.seekTo(seek<500 ? 0 : seek); + } else if(seek>=1000) ijkPlayer.seekTo(seek); bitRate = ijkPlayer.getBitRate(); var diff = dur - ijkPlayer.getDuration(); if(diff>0 && diff<=1000) ijkPlayer.setLooping(false); - if(seek>=1000) { - ijkPlayer.seekTo(seek); - Util.println(" Seek "+seek); - } - if(isShown() && getAlpha()>=0.25) ijkPlayer.start(); + Util.println(" Seek "+seek); }); ijkPlayer.setOnErrorListener((IMediaPlayer var1, int var2, int var3)->{ Util.println(" Video Error: "+var1+" "+var2+" "+var3); diff --git a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/TCPThread.java b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/TCPThread.java index 4b90d19..1c9c4f1 100644 --- a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/TCPThread.java +++ b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/TCPThread.java @@ -93,7 +93,7 @@ public class TCPThread extends Thread { for(var fil : files) { var name = fil.stnn("name"); var file = new File(Util.programDir + "/" + name); - if(file.isFile() && file.length()==fil.intg("size")) existed.add(name); + if(file.isFile() && file.length()==fil.lng("size")) existed.add(name); } new JSMap("_type", _type, "existed", existed).write(out); } @@ -101,7 +101,7 @@ public class TCPThread extends Thread { Util.downId = 0; Util.deleteFiles(obj.intg("proSize"), existed); } else if("fileStart".equals(_type)) { - var size = obj.intg("size"); + var size = obj.lng("size"); var name = obj.stnn("id"); Util.println(" size: " + size + " name: " + name); if(name.equals("program")) { @@ -121,7 +121,7 @@ public class TCPThread extends Thread { } } else if("setBackImg".equals(_type) || "imgFileStart".equals(_type)) { var fout = new FileOutputStream(Util.backImgFile); - IOs.write(fout, in, obj.intg("size")); + IOs.write(fout, in, obj.lng("size")); fout.flush(); fout.getFD().sync(); fout.close(); @@ -314,9 +314,9 @@ public class TCPThread extends Thread { if(main!=null) main.runOnUiThread(() -> { if(! main.avas.isEmpty()) { var page = main.avas.get(main.curAva); - for(var layer : page.layers) for(var src : layer.srcs) if(src.view.getVisibility()==VISIBLE) { + for(var layer : page.layers) for(var src : layer.srcs) if(src.alphaShow==1 && src.view!=null && src.view.getVisibility()==VISIBLE) { try { - if(src.view instanceof SrcVideo) { + if(src.typ == 'V') { var view = (SrcVideo) src.view; if(view.ijkPlayer!=null) { writer.append("VideoPlaying: ").append(String.valueOf(view.ijkPlayer.isPlaying())).append("\tCur/Dur: ").append(String.valueOf(view.ijkPlayer.getCurrentPosition())).append("/").append(String.valueOf(view.ijkPlayer.getDuration())).append("\n");