Example usage for com.badlogic.gdx.audio.analysis KissFFT KissFFT

List of usage examples for com.badlogic.gdx.audio.analysis KissFFT KissFFT

Introduction

In this page you can find the example usage for com.badlogic.gdx.audio.analysis KissFFT KissFFT.

Prototype

public KissFFT(int numSamples) 

Source Link

Document

Creates a new fft instance that can analyse numSamples samples.

Usage

From source file:mobi.shad.s3lib.audio.AudioAnalyzer.java

License:Apache License

public final void load(String fileName) {
    audioFileName = fileName;/* w  w w . j  a va 2s.c  om*/

    fft = new KissFFT(bufferSize);
    for (int i = 0; i < bufferSize; i++) {
        samples[i] = 0;
        spectrum[i] = 0;
        maxValues[i] = 0;
        topValues[i] = 0;
        top2Values[i] = 0;
        top3Values[i] = 0;
        barValues[i] = 0;
    }

    if (!fileName.equalsIgnoreCase("") && fileName.endsWith(".mp3")) {
        FileHandle fileHandle = S3File.getFileHandle(audioFileName);
        if (fileHandle.exists()) {
            try {
                FileHandle copyFileHeader = S3File.getFileHandle(audioFileName + "/tmp/" + fileHandle.name(),
                        false, true);
                fileHandle.copyTo(copyFileHeader);

                decoder = new Mpg123Decoder(copyFileHeader);
                S3Log.log(TAG,
                        "Play file: " + fileName + " length: " + decoder.getLength() + " position: "
                                + decoder.getPosition() + " rate: " + decoder.getRate() + " channels: "
                                + decoder.getChannels());
                device = Gdx.audio.newAudioDevice(decoder.getRate(), decoder.getChannels() == 1 ? true : false);
                playerRunnable = new PlayerRunnable();
                playbackThread = new Thread(playerRunnable);
                playbackThread.setDaemon(true);
                canPlay = true;
            } catch (Exception ex) {
                S3Log.error(TAG, "Error load mp3 ...", ex);
            }
        } else {
            canPlay = false;
        }
    }
}