Began work on music selection UI

This commit is contained in:
2017-04-18 23:34:39 -05:00
parent fa87f5e8cf
commit 5a472b21e6
5 changed files with 203 additions and 114 deletions

View File

@@ -1,8 +1,7 @@
package zero1hd.polyjet.audio;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidParameterException;
import javax.sound.sampled.AudioFormat;
@@ -11,19 +10,19 @@ import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.files.FileHandle;
import zero1hd.wavedecoder.WavDecoder;
import zero1hd.wavedecoder.WavInfo;
public class WavAudioData implements AudioData {
private int readWindowSize = 1024;
private InputStream inStream;
private InputStream bufferedAudioIn;
private AudioFormat format;
int readIndex;
Music playbackMusic;
WavDecoder decoder;
WavInfo wavinfo;
@Override
public void readIndexUpdate() {
readIndex = (int) (playbackMusic.getPosition() * decoder.getSampleRate() / readWindowSize);
readIndex = (int) (playbackMusic.getPosition() * wavinfo.getSampleRate() / readWindowSize);
}
@Override
@@ -31,15 +30,21 @@ public class WavAudioData implements AudioData {
return readIndex;
}
public void setInfo(WavInfo wavinfo) {
this.wavinfo = wavinfo;
}
@Override
public void setAudioFile(FileHandle audioFileHandler) {
reset();
inStream = audioFileHandler.read();
bufferedAudioIn = new BufferedInputStream(inStream);
decoder.setAudioFile(audioFileHandler.file());
try {
decoder.setAudioFile(wavinfo);
} catch (InvalidParameterException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
playbackMusic = Gdx.audio.newMusic(audioFileHandler);
format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, (float) decoder.getSampleRate(), 16, decoder.getChannels(), decoder.getChannels()*2, (float)decoder.getSampleRate(), false);
format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, (float) wavinfo.getSampleRate(), 16, wavinfo.getChannels(), wavinfo.getChannels()*2, (float) wavinfo.getSampleRate(), false);
}
@Override
@@ -49,16 +54,6 @@ public class WavAudioData implements AudioData {
playbackMusic.dispose();
playbackMusic = null;
}
if (inStream != null) {
try {
bufferedAudioIn.close();
inStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Override