Trial 11022025
This commit is contained in:
@@ -3,10 +3,37 @@ package BASS;
|
||||
import lombok.Getter;
|
||||
import org.tinylog.Logger;
|
||||
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class AudioPlayer {
|
||||
private final Bass bass = Bass.Instance;
|
||||
private @Getter boolean inited = false;
|
||||
private @Getter String currentFile = "";
|
||||
private int currentFileHandle = 0;
|
||||
|
||||
public void WaitUntilFinished(){
|
||||
while(currentFileHandle!=0){
|
||||
try {
|
||||
Thread.sleep(100);
|
||||
} catch (InterruptedException ignored) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isPlaying(){
|
||||
return currentFileHandle!=0;
|
||||
}
|
||||
|
||||
public void StopCurrentPlayback(){
|
||||
if (currentFileHandle!=0){
|
||||
if (bass.BASS_ChannelStop(currentFileHandle)){
|
||||
Logger.info("AudioPlayer StopCurrentPlayback success");
|
||||
} else Logger.error("AudioPlayer StopCurrentPlayback failed, error code: "+bass.BASS_ErrorGetCode());
|
||||
}
|
||||
currentFileHandle = 0;
|
||||
currentFile = "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize AudioPlayer
|
||||
@@ -18,6 +45,7 @@ public class AudioPlayer {
|
||||
if (deviceid>-1){
|
||||
int initflags = Bass.BASS_DEVICE_16BITS | Bass.BASS_DEVICE_STEREO | Bass.BASS_DEVICE_FREQ | Bass.BASS_DEVICE_REINIT;
|
||||
if (bass.BASS_Init(deviceid,samplingrate,initflags)){
|
||||
currentFileHandle = 0;
|
||||
inited = true;
|
||||
} else Logger.error("AudioPlayer initialization failed, BASS_Init failed, error code: " + bass.BASS_ErrorGetCode());
|
||||
} else Logger.error("AudioPlayer initialization failed, deviceid is not correct");
|
||||
@@ -34,6 +62,8 @@ public class AudioPlayer {
|
||||
} else Logger.error("AudioPlayer Free failed, error code: "+bass.BASS_ErrorGetCode());
|
||||
inited = false;
|
||||
}
|
||||
currentFile = "";
|
||||
currentFileHandle = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,6 +109,8 @@ public class AudioPlayer {
|
||||
int filehandle = bass.BASS_StreamCreateFile(false, filename, 0, 0, 0);
|
||||
if (filehandle!=0){
|
||||
if (bass.BASS_ChannelStart(filehandle)){
|
||||
currentFile = filename;
|
||||
currentFileHandle = filehandle;
|
||||
new Thread(()->{
|
||||
if (playbackstatus!=null) playbackstatus.onPlaybackStarted(filename);
|
||||
boolean iscontinue = true;
|
||||
@@ -101,6 +133,8 @@ public class AudioPlayer {
|
||||
}
|
||||
}
|
||||
if (playbackstatus!=null) playbackstatus.onPlaybackFinished(filename);
|
||||
currentFile = "";
|
||||
currentFileHandle = 0;
|
||||
}).start();
|
||||
return true;
|
||||
} else Logger.error("AudioPlayer PlayFile failed, BASS_ChannelStart failed, error code: "+bass.BASS_ErrorGetCode());
|
||||
|
||||
Reference in New Issue
Block a user