An open API service indexing awesome lists of open source software.

https://github.com/goxr3plus/java-stream-player

🌌Java Advanced Audio Controller Library (WAV, AU, AIFF, MP3, OGG VORBIS, FLAC, MONKEY's AUDIO and SPEEX audio formats )
https://github.com/goxr3plus/java-stream-player

aiff au flac mp3 ogg speex wav

Last synced: 6 months ago
JSON representation

🌌Java Advanced Audio Controller Library (WAV, AU, AIFF, MP3, OGG VORBIS, FLAC, MONKEY's AUDIO and SPEEX audio formats )

Awesome Lists containing this project

README

          

[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/Q5Q3WBIC)

---

Java Stream Player ( Library )



🎶




Java Audio Controller Library with (skip,skipTo,start,stop,pause,play,restart)
This is the next version of JavaZoom BasicPlayer



---

[![Latest Version](https://img.shields.io/github/release/goxr3plus/java-stream-player.svg?style=flat-square)](https://github.com/goxr3plus/java-stream-player/releases)
[![HitCount](http://hits.dwyl.io/goxr3plus/java-stream-player.svg)](http://hits.dwyl.io/goxr3plus/java-stream-player)
Patreon donate button
PayPal donate button

### 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
``` XML


jitpack.io
https://jitpack.io

```

### Step 2. Add the dependency
``` XML

com.github.goxr3plus
java-stream-player
9.0.4

```

Example usage :

``` JAVA
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 properties) {

}

@Override
public void progress(final int nEncodedBytes, final long microsecondPosition, final byte[] pcmData,
final Map 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-Audio-Wave-Spectrum-API](https://github.com/goxr3plus/Java-Audio-Wave-Spectrum-API)
![image](https://github.com/goxr3plus/Java-Audio-Wave-Spectrum-API/raw/master/images/Screenshot_2.jpg?raw=true)
- [Jave Spectrum Analyzers from Audio](https://github.com/goxr3plus/Java-Spectrum-Analyser-Tutorials)
- [Capture Audio from Microphone and make complex spectrum analyzers](https://github.com/goxr3plus/Java-Microphone-Audio-Spectrum-Analyzers-Tutorial)

- **Java multiple audio formats player**
- [Java-stream-player](https://github.com/goxr3plus/java-stream-player)

- **Speech Recognition/Translation/Synthenizers**
- [Java Speech Recognition/Translation/Synthesizer based on Google Cloud Services](https://github.com/goxr3plus/java-google-speech-api)
- [Java-Speech-Recognizer-Tutorial--Calculator](https://github.com/goxr3plus/Java-Speech-Recognizer-Tutorial--Calculator)
- [Java+MaryTTS=Java Text To Speech](https://github.com/goxr3plus/Java-Text-To-Speech-Tutorial)
- [Java Speech Recognition Program based on Google Cloud Services ](https://github.com/goxr3plus/Java-Google-Speech-Recognizer)
- [Java Google Text To Speech](https://github.com/goxr3plus/Java-Google-Text-To-Speech)
- [Full Google Translate Support using Java](https://github.com/goxr3plus/java-google-translator)
- [Professional Java Google Desktop Translator](https://github.com/goxr3plus/Java-Google-Desktop-Translator)

---

### Looking for a ffmpeg wrapper in Java ?
> Check this -> [jave2](https://github.com/a-schild/jave2) , currently updating it :)

---

### Originally being developed for [XR3Player Application](https://github.com/goxr3plus/XR3Player)

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:

[![Java Spectrum Analyser Tutorial](http://img.youtube.com/vi/lwlioga8Row/0.jpg)](https://www.youtube.com/watch?v=lwlioga8Row)