Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.goxr3plus:java-stream-player:10.0.2'
}
dependencies {
implementation("com.github.goxr3plus:java-stream-player:10.0.2")
}
<dependency>
<groupId>com.github.goxr3plus</groupId>
<artifactId>java-stream-player</artifactId>
<version>10.0.2</version>
</dependency>
libraryDependencies += "com.github.goxr3plus" % "java-stream-player" % "10.0.2"
:dependencies [[com.github.goxr3plus/java-stream-player "10.0.2"]]
<a href="https://patreon.com/preview/8adae1b75d654b2899e04a9e1111f0eb" title="Donate to this project using Patreon"><img src="https://img.shields.io/badge/patreon-donate-yellow.svg" alt="Patreon donate button" /></a>
<a href="https://www.paypal.me/GOXR3PLUSCOMPANY" title="Donate to this project using Paypal"><img src="https://img.shields.io/badge/paypal-donate-yellow.svg" alt="PayPal donate button" /></a>
https://jitpack.io/private#goxr3plus/java-stream-player
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<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();
}
}
Spectrum Analyzers
Java multiple audio formats player
Speech Recognition/Translation/Synthenizers
Check this -> jave2 , currently updating it :)
Are 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: