如何阅读MP3

时间:2015-08-03 22:01:45

标签: java mp3

使用best practice我能够找到如何阅读mp3文件,但我仍然对如何实际使用它感到困惑。

File file = new File(filename);
AudioInputStream in= AudioSystem.getAudioInputStream(file);
AudioInputStream din = null;
AudioFormat baseFormat = in.getFormat();
AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 
                                        baseFormat.getSampleRate(),
                                        16,
                                        baseFormat.getChannels(),
                                        baseFormat.getChannels() * 2,
                                        baseFormat.getSampleRate(),
                                        false);
din = AudioSystem.getAudioInputStream(decodedFormat, in);

在这些声明之后,您如何使用din?我知道循环看起来像这样:

while (/*What do I put here??*/){
    int currentByte = din.read();
}

换句话说,我只是问如何从mp3文件中读取整个字节数组,在循环中一次检查一个字节。

2 个答案:

答案 0 :(得分:1)

AudioInputStream.read()returns -1 when it's out of data,所以你可以在发生这种情况时打破你的循环:

while (true){
    int currentByte = din.read();
    if (currentByte == -1) break;
    // Handling code
}

答案 1 :(得分:0)

试试这段代码: import java.io.DataInputStream; import java.io.FileInputStream;

public class Main {

  public static void main(String[] args) throws Exception {
    FileInputStream fin = new FileInputStream("C:/Array.txt");
    DataInputStream din = new DataInputStream(fin);

    byte b[] = new byte[10];
    din.read(b);
    din.close();
  }

提供者:http://www.java2s.com/Tutorial/Java/0180__File/ReadbytearrayfromfileusingDataInputStream.htm