i have to specify the path for a mp3 song from raw folder in FileInputStream. actually i have this code(calculating BPM) in java and converting into android.
package beatit;
import java.io.FileInputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
import javazoom.jl.player.Player;
/**
* @author Peter Backx
*/
public class Main {
static Logger log = Logger.getLogger("BeatIt");
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
BPM2SampleProcessor processor = new BPM2SampleProcessor();
processor.setSampleSize(1024);
EnergyOutputAudioDevice output = new EnergyOutputAudioDevice(processor);
output.setAverageLength(1024);
Player player = new Player(new FileInputStream(args[0]), output); // here i give mp3 from raw instead of arg[0].
player.play();
log.log(Level.INFO, "calculated BPM: " + processor.getBPM());
}
}
i tried the follows:
Player player = new Player(new FileInputStream(R.raw.mh), output);
and instead of Player i use this
MediaPlayer mPlayer = MediaPlayer.create(this, R.raw.mh);
but i got error my log cat file is
05-02 17:04:35.180: ERROR/AndroidRuntime(278): Caused by: java.lang.IndexOutOfBoundsException
05-02 17:04:35.180: ERROR/AndroidRuntime(278): at java.util.LinkedList.get(LinkedList.java:459)
05-02 17:04:35.180: ERROR/AndroidRuntime(278): at beatit.beatit.BPM2SampleProcessor.getBPM(BPM2SampleProcessor.java:69)
05-02 17:04:35.180: ERROR/AndroidRuntime(278): at beatit.beatit.Main.onCreate(Main.java:44)
05-02 17:04:35.180: ERROR/AndroidRuntime(278): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-02 17:04:35.180: ERROR/AndroidRuntime(278): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-02 17:04:35.180: ERROR/AndroidRuntime(278): ... 11 more
Use
it returns an InputStream of your file.