jimu-decompiled/sources/com/unity3d/player/p.java
2025-05-13 19:24:51 +02:00

574 lines
16 KiB
Java

package com.unity3d.player;
import android.app.Activity;
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.media.MediaPlayer;
import android.net.Uri;
import android.util.Log;
import android.view.Display;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.MediaController;
import java.io.FileInputStream;
import java.io.IOException;
/* loaded from: classes2.dex */
public final class p extends FrameLayout implements MediaPlayer.OnBufferingUpdateListener, MediaPlayer.OnCompletionListener, MediaPlayer.OnPreparedListener, MediaPlayer.OnVideoSizeChangedListener, SurfaceHolder.Callback, MediaController.MediaPlayerControl {
private static boolean a = false;
private final Context b;
private final SurfaceView c;
private final SurfaceHolder d;
private final String e;
private final int f;
private final int g;
private final boolean h;
private final long i;
private final long j;
private final FrameLayout k;
private final Display l;
private int m;
private int n;
private int o;
private int p;
private MediaPlayer q;
private MediaController r;
private boolean s;
private boolean t;
private int u;
private boolean v;
private boolean w;
private a x;
private b y;
private volatile int z;
public interface a {
void a(int i);
}
public class b implements Runnable {
private p b;
private boolean c = false;
public b(p pVar) {
this.b = pVar;
}
public final void a() {
this.c = true;
}
@Override // java.lang.Runnable
public final void run() {
try {
Thread.sleep(5000L);
} catch (InterruptedException unused) {
Thread.currentThread().interrupt();
}
if (this.c) {
return;
}
if (p.a) {
p.b("Stopping the video player due to timeout.");
}
this.b.CancelOnPrepare();
}
}
protected p(Context context, String str, int i, int i2, int i3, boolean z, long j, long j2, a aVar) {
super(context);
this.s = false;
this.t = false;
this.u = 0;
this.v = false;
this.w = false;
this.z = 0;
this.x = aVar;
this.b = context;
this.k = this;
this.c = new SurfaceView(context);
this.d = this.c.getHolder();
this.d.addCallback(this);
this.k.setBackgroundColor(i);
this.k.addView(this.c);
this.l = ((WindowManager) this.b.getSystemService("window")).getDefaultDisplay();
this.e = str;
this.f = i2;
this.g = i3;
this.h = z;
this.i = j;
this.j = j2;
if (a) {
b("fileName: " + this.e);
}
if (a) {
b("backgroundColor: " + i);
}
if (a) {
b("controlMode: " + this.f);
}
if (a) {
b("scalingMode: " + this.g);
}
if (a) {
b("isURL: " + this.h);
}
if (a) {
b("videoOffset: " + this.i);
}
if (a) {
b("videoLength: " + this.j);
}
setFocusable(true);
setFocusableInTouchMode(true);
}
private void a(int i) {
this.z = i;
a aVar = this.x;
if (aVar != null) {
aVar.a(this.z);
}
}
/* JADX INFO: Access modifiers changed from: private */
public static void b(String str) {
Log.i("Video", "VideoPlayer: " + str);
}
private void c() {
FileInputStream fileInputStream;
MediaPlayer mediaPlayer = this.q;
if (mediaPlayer != null) {
mediaPlayer.setDisplay(this.d);
if (this.v) {
return;
}
if (a) {
b("Resuming playback");
}
this.q.start();
return;
}
a(0);
doCleanUp();
try {
this.q = new MediaPlayer();
if (this.h) {
this.q.setDataSource(this.b, Uri.parse(this.e));
} else {
if (this.j != 0) {
fileInputStream = new FileInputStream(this.e);
this.q.setDataSource(fileInputStream.getFD(), this.i, this.j);
} else {
try {
AssetFileDescriptor openFd = getResources().getAssets().openFd(this.e);
this.q.setDataSource(openFd.getFileDescriptor(), openFd.getStartOffset(), openFd.getLength());
openFd.close();
} catch (IOException unused) {
fileInputStream = new FileInputStream(this.e);
this.q.setDataSource(fileInputStream.getFD());
}
}
fileInputStream.close();
}
this.q.setDisplay(this.d);
this.q.setScreenOnWhilePlaying(true);
this.q.setOnBufferingUpdateListener(this);
this.q.setOnCompletionListener(this);
this.q.setOnPreparedListener(this);
this.q.setOnVideoSizeChangedListener(this);
this.q.setAudioStreamType(3);
this.q.prepareAsync();
this.y = new b(this);
new Thread(this.y).start();
} catch (Exception e) {
if (a) {
b("error: " + e.getMessage() + e);
}
a(2);
}
}
private void d() {
if (isPlaying()) {
return;
}
a(1);
if (a) {
b("startVideoPlayback");
}
updateVideoLayout();
if (this.v) {
return;
}
start();
}
public final void CancelOnPrepare() {
a(2);
}
final boolean a() {
return this.v;
}
@Override // android.widget.MediaController.MediaPlayerControl
public final boolean canPause() {
return true;
}
@Override // android.widget.MediaController.MediaPlayerControl
public final boolean canSeekBackward() {
return true;
}
@Override // android.widget.MediaController.MediaPlayerControl
public final boolean canSeekForward() {
return true;
}
protected final void destroyPlayer() {
if (a) {
b("destroyPlayer");
}
if (!this.v) {
pause();
}
doCleanUp();
}
protected final void doCleanUp() {
b bVar = this.y;
if (bVar != null) {
bVar.a();
this.y = null;
}
MediaPlayer mediaPlayer = this.q;
if (mediaPlayer != null) {
mediaPlayer.release();
this.q = null;
}
this.o = 0;
this.p = 0;
this.t = false;
this.s = false;
}
@Override // android.widget.MediaController.MediaPlayerControl
public final int getBufferPercentage() {
if (this.h) {
return this.u;
}
return 100;
}
@Override // android.widget.MediaController.MediaPlayerControl
public final int getCurrentPosition() {
MediaPlayer mediaPlayer = this.q;
if (mediaPlayer == null) {
return 0;
}
return mediaPlayer.getCurrentPosition();
}
@Override // android.widget.MediaController.MediaPlayerControl
public final int getDuration() {
MediaPlayer mediaPlayer = this.q;
if (mediaPlayer == null) {
return 0;
}
return mediaPlayer.getDuration();
}
@Override // android.widget.MediaController.MediaPlayerControl
public final boolean isPlaying() {
boolean z = this.t && this.s;
MediaPlayer mediaPlayer = this.q;
return mediaPlayer == null ? !z : mediaPlayer.isPlaying() || !z;
}
@Override // android.media.MediaPlayer.OnBufferingUpdateListener
public final void onBufferingUpdate(MediaPlayer mediaPlayer, int i) {
if (a) {
b("onBufferingUpdate percent:" + i);
}
this.u = i;
}
@Override // android.media.MediaPlayer.OnCompletionListener
public final void onCompletion(MediaPlayer mediaPlayer) {
if (a) {
b("onCompletion called");
}
destroyPlayer();
a(3);
}
@Override // android.view.View, android.view.KeyEvent.Callback
public final boolean onKeyDown(int i, KeyEvent keyEvent) {
if (i != 4 && (this.f != 2 || i == 0 || keyEvent.isSystem())) {
MediaController mediaController = this.r;
return mediaController != null ? mediaController.onKeyDown(i, keyEvent) : super.onKeyDown(i, keyEvent);
}
destroyPlayer();
a(3);
return true;
}
@Override // android.media.MediaPlayer.OnPreparedListener
public final void onPrepared(MediaPlayer mediaPlayer) {
if (a) {
b("onPrepared called");
}
b bVar = this.y;
if (bVar != null) {
bVar.a();
this.y = null;
}
int i = this.f;
if (i == 0 || i == 1) {
this.r = new MediaController(this.b);
this.r.setMediaPlayer(this);
this.r.setAnchorView(this);
this.r.setEnabled(true);
Context context = this.b;
if (context instanceof Activity) {
this.r.setSystemUiVisibility(((Activity) context).getWindow().getDecorView().getSystemUiVisibility());
}
this.r.show();
}
this.t = true;
if (this.t && this.s) {
d();
}
}
@Override // android.view.View
public final boolean onTouchEvent(MotionEvent motionEvent) {
int action = motionEvent.getAction() & 255;
if (this.f != 2 || action != 0) {
MediaController mediaController = this.r;
return mediaController != null ? mediaController.onTouchEvent(motionEvent) : super.onTouchEvent(motionEvent);
}
destroyPlayer();
a(3);
return true;
}
@Override // android.media.MediaPlayer.OnVideoSizeChangedListener
public final void onVideoSizeChanged(MediaPlayer mediaPlayer, int i, int i2) {
if (a) {
b("onVideoSizeChanged called " + i + "x" + i2);
}
if (i != 0 && i2 != 0) {
this.s = true;
this.o = i;
this.p = i2;
if (this.t && this.s) {
d();
return;
}
return;
}
if (a) {
b("invalid video width(" + i + ") or height(" + i2 + ")");
}
}
@Override // android.widget.MediaController.MediaPlayerControl
public final void pause() {
MediaPlayer mediaPlayer = this.q;
if (mediaPlayer == null) {
return;
}
if (this.w) {
mediaPlayer.pause();
}
this.v = true;
}
@Override // android.widget.MediaController.MediaPlayerControl
public final void seekTo(int i) {
MediaPlayer mediaPlayer = this.q;
if (mediaPlayer == null) {
return;
}
mediaPlayer.seekTo(i);
}
@Override // android.widget.MediaController.MediaPlayerControl
public final void start() {
if (a) {
b("Start");
}
MediaPlayer mediaPlayer = this.q;
if (mediaPlayer == null) {
return;
}
if (this.w) {
mediaPlayer.start();
}
this.v = false;
}
@Override // android.view.SurfaceHolder.Callback
public final void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i2, int i3) {
if (a) {
b("surfaceChanged called " + i + " " + i2 + "x" + i3);
}
if (this.m == i2 && this.n == i3) {
return;
}
this.m = i2;
this.n = i3;
if (this.w) {
updateVideoLayout();
}
}
@Override // android.view.SurfaceHolder.Callback
public final void surfaceCreated(SurfaceHolder surfaceHolder) {
if (a) {
b("surfaceCreated called");
}
this.w = true;
c();
}
@Override // android.view.SurfaceHolder.Callback
public final void surfaceDestroyed(SurfaceHolder surfaceHolder) {
if (a) {
b("surfaceDestroyed called");
}
this.w = false;
}
/* JADX WARN: Code restructure failed: missing block: B:17:0x004d, code lost:
if (r5 <= r3) goto L19;
*/
/* JADX WARN: Code restructure failed: missing block: B:18:0x004f, code lost:
r1 = (int) (r0 / r3);
*/
/* JADX WARN: Code restructure failed: missing block: B:29:0x0053, code lost:
r0 = (int) (r1 * r3);
*/
/* JADX WARN: Code restructure failed: missing block: B:33:0x005d, code lost:
if (r5 >= r3) goto L19;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct code enable 'Show inconsistent code' option in preferences
*/
protected final void updateVideoLayout() {
/*
r8 = this;
boolean r0 = com.unity3d.player.p.a
if (r0 == 0) goto L9
java.lang.String r0 = "updateVideoLayout"
b(r0)
L9:
android.media.MediaPlayer r0 = r8.q
if (r0 != 0) goto Le
return
Le:
int r0 = r8.m
if (r0 == 0) goto L16
int r0 = r8.n
if (r0 != 0) goto L34
L16:
android.content.Context r0 = r8.b
java.lang.String r1 = "window"
java.lang.Object r0 = r0.getSystemService(r1)
android.view.WindowManager r0 = (android.view.WindowManager) r0
android.util.DisplayMetrics r1 = new android.util.DisplayMetrics
r1.<init>()
android.view.Display r0 = r0.getDefaultDisplay()
r0.getMetrics(r1)
int r0 = r1.widthPixels
r8.m = r0
int r0 = r1.heightPixels
r8.n = r0
L34:
int r0 = r8.m
int r1 = r8.n
boolean r2 = r8.s
if (r2 == 0) goto L65
int r2 = r8.o
float r3 = (float) r2
int r4 = r8.p
float r5 = (float) r4
float r3 = r3 / r5
float r5 = (float) r0
float r6 = (float) r1
float r5 = r5 / r6
int r6 = r8.g
r7 = 1
if (r6 != r7) goto L58
int r2 = (r5 > r3 ? 1 : (r5 == r3 ? 0 : -1))
if (r2 > 0) goto L53
L4f:
float r1 = (float) r0
float r1 = r1 / r3
int r1 = (int) r1
goto L6e
L53:
float r0 = (float) r1
float r0 = r0 * r3
int r0 = (int) r0
goto L6e
L58:
r7 = 2
if (r6 != r7) goto L60
int r2 = (r5 > r3 ? 1 : (r5 == r3 ? 0 : -1))
if (r2 < 0) goto L53
goto L4f
L60:
if (r6 != 0) goto L6e
r0 = r2
r1 = r4
goto L6e
L65:
boolean r2 = com.unity3d.player.p.a
if (r2 == 0) goto L6e
java.lang.String r2 = "updateVideoLayout: Video size is not known yet"
b(r2)
L6e:
int r2 = r8.m
if (r2 != r0) goto L76
int r2 = r8.n
if (r2 == r1) goto La1
L76:
boolean r2 = com.unity3d.player.p.a
if (r2 == 0) goto L93
java.lang.StringBuilder r2 = new java.lang.StringBuilder
java.lang.String r3 = "frameWidth = "
r2.<init>(r3)
r2.append(r0)
java.lang.String r3 = "; frameHeight = "
r2.append(r3)
r2.append(r1)
java.lang.String r2 = r2.toString()
b(r2)
L93:
android.widget.FrameLayout$LayoutParams r2 = new android.widget.FrameLayout$LayoutParams
r3 = 17
r2.<init>(r0, r1, r3)
android.widget.FrameLayout r0 = r8.k
android.view.SurfaceView r1 = r8.c
r0.updateViewLayout(r1, r2)
La1:
return
*/
throw new UnsupportedOperationException("Method not decompiled: com.unity3d.player.p.updateVideoLayout():void");
}
}