Java Stream Player ( Library )
πΆ
Java Audio Controller Library with (skip,skipTo,start,stop,pause,play,restart) This is the next version of JavaZoom BasicPlayer
What audio formats it supports?
- Fully Supported βοΈ
- WAV
- MP3
- Partially not full tested π§
- OGG VORBIS
- FLAC
- MONKEY's AUDIO
- SPEEX
- Not Supported Yet β
- AAC
- THEORA
- ... all the others
Step 1. Add the JitPack repository to your build file
https://jitpack.io/private#goxr3plus/java-stream-player
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Step 2. Add the dependency
<dependency>
<groupId>com.github.goxr3plus</groupId>
<artifactId>java-stream-player</artifactId>
<version>9.0.4</version>
</dependency>
Example usage :
import java.io.File;
import java.util.Map;
import com.goxr3plus.streamplayer.enums.Status;
import com.goxr3plus.streamplayer.stream.StreamPlayer;
import com.goxr3plus.streamplayer.stream.StreamPlayerListener;
import com.goxr3plus.streamplayer.stream.StreamPlayerEvent;
import com.goxr3plus.streamplayer.stream.StreamPlayerException;
/**
* @author GOXR3PLUS
*
*/
public class Main extends StreamPlayer implements StreamPlayerListener {
private final String audioAbsolutePath = "Logic - Ballin [Bass Boosted].mp3";
/**
* Constructor
*/
public Main() {
try {
// Register to the Listeners
addStreamPlayerListener(this);
// Open a File
// open(new File("...")) //..Here must be the file absolute path
// open(INPUTSTREAM)
// open(AUDIOURL)
// Example
open(new File(audioAbsolutePath));
// Seek by bytes
// seekBytes(500000L);
// Seek +x seconds starting from the current position
seekSeconds(15);
seekSeconds(15);
/* Seek starting from the begginning of the audio */
// seekTo(200);
// Play it
play();
// pause();
} catch (final Exception ex) {
ex.printStackTrace();
}
}
@Override
public void opened(final Object dataSource, final Map<String, Object> properties) {
}
@Override
public void progress(final int nEncodedBytes, final long microsecondPosition, final byte[] pcmData,
final Map<String, Object> properties) {
// System.out.println("Encoded Bytes : " + nEncodedBytes);
// Current time position in seconds:) by GOXR3PLUS STUDIO
// This is not the more precise way ...
// in XR3Player i am using different techniques .
// https://github.com/goxr3plus/XR3Player
// Just for demostration purposes :)
// I will add more advanced techniques with milliseconds , microseconds , hours
// and minutes soon
// .MP3 OR .WAV
final String extension = "mp3"; // THE SAMPLE Audio i am using is .MP3 SO ... :)
long totalBytes = getTotalBytes();
if ("mp3".equals(extension) || "wav".equals(extension)) {
// Calculate the progress until now
double progress = (nEncodedBytes > 0 && totalBytes > 0) ? (nEncodedBytes * 1.0f / totalBytes * 1.0f)
: -1.0f;
// System.out.println(progress*100+"%");
System.out.println("Seconds : " + (int) (microsecondPosition / 1000000) + " s " + "Progress: [ "
+ progress * 100 + " ] %");
// .WHATEVER MUSIC FILE*
} else {
// System.out.println("Current time is : " + (int) (microsecondPosition /
// 1000000) + " seconds");
}
}
@Override
public void statusUpdated(final StreamPlayerEvent streamPlayerEvent) {
// Player status
final Status status = streamPlayerEvent.getPlayerStatus();
// System.out.println(streamPlayerEvent.getPlayerStatus());
// Examples
if (status == Status.OPENED) {
} else if (status == Status.OPENING) {
} else if (status == Status.RESUMED) {
} else if (status == Status.PLAYING) {
} else if (status == Status.STOPPED) {
} else if (status == Status.SEEKING) {
} else if (status == Status.SEEKED) {
}
// etc... SEE XR3PLAYER https://github.com/goxr3plus/XR3Player for advanced
// examples
}
public static void main(final String[] args) {
new Main();
}
}
Java Audio Tutorials and API's by GOXR3PLUS STUDIO
-
Spectrum Analyzers
-
Java multiple audio formats player
-
Speech Recognition/Translation/Synthenizers
- Java Speech Recognition/Translation/Synthesizer based on Google Cloud Services
- Java-Speech-Recognizer-Tutorial--Calculator
- Java+MaryTTS=Java Text To Speech
- Java Speech Recognition Program based on Google Cloud Services
- Java Google Text To Speech
- Full Google Translate Support using Java
- Professional Java Google Desktop Translator
Looking for a ffmpeg wrapper in Java ?
Check this -> jave2 , currently updating it :)
XR3Player Application
Originally being developed forAre you curious on how to make spectrum analysers in Java? Well the below tutorials plus the above code are the solution :)
I hope you enjoy these tutorials and actually you can watch the youtube videos about them below: