2011-05-02 50 views
0

我必须从FileInputStream中的原始文件夹指定mp3歌曲的路径。实际上我有这个代码(计算BPM)在Java和转换成android。如何在原始文件夹中设置Android的FileInputStream中的路径

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()); 
} 

}

我试过如下:

Player player = new Player(new FileInputStream(R.raw.mh), output); 

和,而不是球员,我用这个

MediaPlayer mPlayer = MediaPlayer.create(this, R.raw.mh); 

,但我遇到错误我的日志猫文件

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 

回答

1

使用

getResources().openRawResource(R.raw.mh); 

returns文件的一个InputStream。

+0

如何让它FileInputStream? – berserk 2014-12-04 09:18:51

相关问题