jimu-decompiled/sources/com/ubt/jimu/blockly/feature/audio/AudioPlayer.java
2025-05-13 19:24:51 +02:00

196 lines
6.7 KiB
Java

package com.ubt.jimu.blockly.feature.audio;
import android.media.MediaPlayer;
import android.text.TextUtils;
import android.util.Log;
import java.io.File;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;
/* loaded from: classes.dex */
public class AudioPlayer {
private static AudioPlayer player;
private MediaPlayer mPlayer;
private String source;
private Timer timer;
private final String TAG = AudioPlayer.class.getSimpleName();
private boolean isPausing = false;
private int progress = -1;
public interface IProgressListener {
void onError();
void onFinished();
}
private class MyTimerTask extends TimerTask {
private long future;
public MyTimerTask(long j) {
this.future = j;
}
@Override // java.util.TimerTask, java.lang.Runnable
public void run() {
if (AudioPlayer.this.mPlayer == null || AudioPlayer.this.mPlayer.getCurrentPosition() < this.future) {
return;
}
AudioPlayer.this.stop();
AudioPlayer.this.timer.cancel();
AudioPlayer.this.timer = null;
}
}
private AudioPlayer() {
this.mPlayer = null;
this.mPlayer = new MediaPlayer();
this.mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { // from class: com.ubt.jimu.blockly.feature.audio.AudioPlayer.1
@Override // android.media.MediaPlayer.OnCompletionListener
public void onCompletion(MediaPlayer mediaPlayer) {
Log.i(AudioPlayer.this.TAG, "onCompletion");
}
});
this.mPlayer.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() { // from class: com.ubt.jimu.blockly.feature.audio.AudioPlayer.2
@Override // android.media.MediaPlayer.OnSeekCompleteListener
public void onSeekComplete(MediaPlayer mediaPlayer) {
Log.i(AudioPlayer.this.TAG, "onSeekComplete");
}
});
this.mPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() { // from class: com.ubt.jimu.blockly.feature.audio.AudioPlayer.3
@Override // android.media.MediaPlayer.OnErrorListener
public boolean onError(MediaPlayer mediaPlayer, int i, int i2) {
Log.e(AudioPlayer.this.TAG, "播放onError:what=" + i + " extra=" + i2);
return false;
}
});
this.mPlayer.setOnInfoListener(new MediaPlayer.OnInfoListener() { // from class: com.ubt.jimu.blockly.feature.audio.AudioPlayer.4
@Override // android.media.MediaPlayer.OnInfoListener
public boolean onInfo(MediaPlayer mediaPlayer, int i, int i2) {
Log.e(AudioPlayer.this.TAG, "onInfo:what=" + i + " extra=" + i2);
return false;
}
});
}
public static synchronized AudioPlayer getInstance() {
AudioPlayer audioPlayer;
synchronized (AudioPlayer.class) {
if (player == null) {
player = new AudioPlayer();
}
audioPlayer = player;
}
return audioPlayer;
}
private void startTimer(long j) {
Timer timer = this.timer;
if (timer != null) {
timer.cancel();
}
this.timer = new Timer();
this.timer.schedule(new MyTimerTask(j), 0L, 50L);
}
public long getAudioDuration(String str) {
try {
this.mPlayer.reset();
this.mPlayer.setDataSource(str);
this.mPlayer.prepare();
return this.mPlayer.getDuration();
} catch (Exception e) {
e.printStackTrace();
return 0L;
}
}
public void pause() {
try {
this.progress = this.mPlayer.getCurrentPosition();
this.isPausing = true;
this.mPlayer.pause();
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean play(String str) {
if (!new File(str).exists()) {
return false;
}
try {
this.mPlayer.reset();
this.mPlayer.setDataSource(str);
this.mPlayer.prepare();
if (TextUtils.isEmpty(this.source)) {
this.source = str;
this.progress = -1;
this.isPausing = false;
} else if (this.source.equals(str)) {
if (!this.isPausing) {
this.source = str;
this.progress = -1;
this.isPausing = false;
} else if (this.progress > -1) {
this.mPlayer.seekTo(this.progress);
this.progress = -1;
this.isPausing = false;
}
}
this.mPlayer.start();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
public void release() {
this.mPlayer.release();
this.mPlayer = null;
}
public void stop() {
try {
this.source = null;
this.mPlayer.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean play(String str, final IProgressListener iProgressListener) {
this.mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { // from class: com.ubt.jimu.blockly.feature.audio.AudioPlayer.5
@Override // android.media.MediaPlayer.OnCompletionListener
public void onCompletion(MediaPlayer mediaPlayer) {
IProgressListener iProgressListener2 = iProgressListener;
if (iProgressListener2 != null) {
iProgressListener2.onFinished();
}
AudioPlayer.this.mPlayer.setOnCompletionListener(null);
}
});
this.mPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() { // from class: com.ubt.jimu.blockly.feature.audio.AudioPlayer.6
@Override // android.media.MediaPlayer.OnErrorListener
public boolean onError(MediaPlayer mediaPlayer, int i, int i2) {
Log.e(AudioPlayer.this.TAG, "MediaPlayer onError:what=" + i + " extra=" + i2);
IProgressListener iProgressListener2 = iProgressListener;
if (iProgressListener2 != null) {
iProgressListener2.onError();
}
AudioPlayer.this.mPlayer.setOnErrorListener(null);
return false;
}
});
return play(str);
}
public void play(String str, long j, IProgressListener iProgressListener) {
if (!play(str, iProgressListener) || j <= 0) {
return;
}
startTimer(j);
}
}