player
This commit is contained in:
parent
bd5851a5a3
commit
db4c46e7e9
|
@ -11,7 +11,7 @@ android {
|
||||||
minSdk 21
|
minSdk 21
|
||||||
targetSdk 34
|
targetSdk 34
|
||||||
versionCode 1
|
versionCode 1
|
||||||
versionName "2.1"
|
versionName "2.1.1"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
package com.xixun.command.reply;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
|
||||||
|
public abstract class ReplyBase implements Serializable{
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -3630726876519388513L;
|
||||||
|
public String commandId;
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.xixun.command.reply;
|
||||||
|
|
||||||
|
public class TaskProgressReply extends ReplyBase {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 6264049742389542806L;
|
||||||
|
public int percent;
|
||||||
|
public String taskItemId;
|
||||||
|
public int speed;
|
||||||
|
public int remainingSeconds;
|
||||||
|
|
||||||
|
public TaskProgressReply(String commandId, String taskItemId, int percent, int sp, int rs) {
|
||||||
|
this.commandId = commandId;
|
||||||
|
this.taskItemId = taskItemId;
|
||||||
|
this.percent = percent;
|
||||||
|
this.speed = sp;
|
||||||
|
this.remainingSeconds = rs;
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,13 +10,14 @@ import android.view.View;
|
||||||
|
|
||||||
public class BackView extends View {
|
public class BackView extends View {
|
||||||
|
|
||||||
public Bitmap img, cosImg;
|
private Bitmap img;
|
||||||
|
Bitmap cosImg;
|
||||||
Rect rect = new Rect();
|
Rect rect = new Rect();
|
||||||
|
|
||||||
public BackView(Context context, int width, int height) {
|
public BackView(Context context, int width, int height) {
|
||||||
super(context);
|
super(context);
|
||||||
img = BitmapFactory.decodeResource(context.getResources(), R.drawable.back);
|
img = BitmapFactory.decodeResource(context.getResources(), R.drawable.back, Util.noScaled);
|
||||||
cosImg = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/XixunPlayer/background");
|
cosImg = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() + "/XixunPlayer/background", Util.noScaled);
|
||||||
rect.right = width;
|
rect.right = width;
|
||||||
rect.bottom = height;
|
rect.bottom = height;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,12 @@ import android.graphics.BitmapFactory;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
|
||||||
|
import com.xixun.command.reply.TaskProgressReply;
|
||||||
import com.xixun.util.PlayerInfo;
|
import com.xixun.util.PlayerInfo;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
|
@ -181,24 +181,35 @@ public class Server extends Service {
|
||||||
Util.printStackTrace(e);
|
Util.printStackTrace(e);
|
||||||
}
|
}
|
||||||
cnt++;
|
cnt++;
|
||||||
if(notificationURL!=null && cnt!=needDown.srcs.size()) {
|
var progress = cnt*100/needDown.srcs.size();
|
||||||
|
if(cnt != needDown.srcs.size()) {
|
||||||
|
if(notificationURL==null) {
|
||||||
|
var intent = new Intent("xixun.intent.action.REPLY");
|
||||||
|
intent.putExtra("reply", new TaskProgressReply(finalCommandId, needDown.prog, progress, 500, 3));
|
||||||
|
MainActivity.ins.sendBroadcast(intent);
|
||||||
|
} else {
|
||||||
try {
|
try {
|
||||||
new URLConn(notificationURL).timeout(5000).writeJson(new JSMap(
|
new URLConn(notificationURL).timeout(5000).writeJson(new JSMap(
|
||||||
"commandId", finalCommandId,
|
"commandId", finalCommandId,
|
||||||
"taskItemId", needDown.prog,
|
"taskItemId", needDown.prog,
|
||||||
"progress", cnt*100/needDown.srcs.size()).toStr()).read();
|
"progress", progress).toStr()).read();
|
||||||
} catch (IOException e) {
|
} catch (Exception e) {
|
||||||
Util.printStackTrace(e);
|
Util.printStackTrace(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(notificationURL!=null) {
|
}
|
||||||
|
if(notificationURL==null) {
|
||||||
|
var intent = new Intent("xixun.intent.action.REPLY");
|
||||||
|
intent.putExtra("reply", new TaskProgressReply(finalCommandId, needDown.prog, 100, 400, 0));
|
||||||
|
MainActivity.ins.sendBroadcast(intent);
|
||||||
|
} else {
|
||||||
try {
|
try {
|
||||||
new URLConn(notificationURL).timeout(5000).writeJson(new JSMap(
|
new URLConn(notificationURL).timeout(5000).writeJson(new JSMap(
|
||||||
"commandId", finalCommandId,
|
"commandId", finalCommandId,
|
||||||
"taskItemId", needDown.prog,
|
"taskItemId", needDown.prog,
|
||||||
"progress", 100).toStr()).read();
|
"progress", 100).toStr()).read();
|
||||||
} catch (IOException e) {
|
} catch (Exception e) {
|
||||||
Util.printStackTrace(e);
|
Util.printStackTrace(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -240,7 +251,7 @@ public class Server extends Service {
|
||||||
fout.close();
|
fout.close();
|
||||||
}
|
}
|
||||||
MainActivity.ins.runOnUiThread(() -> {
|
MainActivity.ins.runOnUiThread(() -> {
|
||||||
MainActivity.ins.backView.cosImg = url==null ? null : BitmapFactory.decodeFile(Util.backImgFile);
|
MainActivity.ins.backView.cosImg = url==null ? null : BitmapFactory.decodeFile(Util.backImgFile, Util.noScaled);
|
||||||
MainActivity.ins.backView.invalidate();
|
MainActivity.ins.backView.invalidate();
|
||||||
});
|
});
|
||||||
return new JSMap(
|
return new JSMap(
|
||||||
|
|
|
@ -86,7 +86,7 @@ public class SocketThread extends Thread {
|
||||||
fout.getFD().sync();
|
fout.getFD().sync();
|
||||||
fout.close();
|
fout.close();
|
||||||
main.runOnUiThread(() -> {
|
main.runOnUiThread(() -> {
|
||||||
main.backView.cosImg = BitmapFactory.decodeFile(Util.backImgFile);
|
main.backView.cosImg = BitmapFactory.decodeFile(Util.backImgFile, Util.noScaled);
|
||||||
main.backView.invalidate();
|
main.backView.invalidate();
|
||||||
});
|
});
|
||||||
} else if("imgFileEnd".equals(_type)) {
|
} else if("imgFileEnd".equals(_type)) {
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class SrcVideo extends TextureView implements TextureView.SurfaceTextureL
|
||||||
}
|
}
|
||||||
void initIjk() {
|
void initIjk() {
|
||||||
ijkPlayer = new IjkMediaPlayer();
|
ijkPlayer = new IjkMediaPlayer();
|
||||||
ijkPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-avc", 1);
|
//ijkPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-avc", 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_FORMAT, "analyzeduration", 1);
|
||||||
ijkPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 48);
|
ijkPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 48);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.xixun.xixunplayer;
|
package com.xixun.xixunplayer;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.graphics.BitmapFactory;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.StatFs;
|
import android.os.StatFs;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
|
@ -25,6 +26,10 @@ public class Util {
|
||||||
public static int screenWidth, screenHeight;
|
public static int screenWidth, screenHeight;
|
||||||
public static boolean isScreenOn;
|
public static boolean isScreenOn;
|
||||||
|
|
||||||
|
public static final BitmapFactory.Options noScaled = new BitmapFactory.Options();
|
||||||
|
static {
|
||||||
|
noScaled.inScaled = false;
|
||||||
|
}
|
||||||
public static final Vector<SocketThread> socketThreads = new Vector<>();
|
public static final Vector<SocketThread> socketThreads = new Vector<>();
|
||||||
public static final HashMap<Integer, String[]> stateDescs = new HashMap<>();
|
public static final HashMap<Integer, String[]> stateDescs = new HashMap<>();
|
||||||
static {
|
static {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user