在Scala / Java中连接MP3

时间:2013-06-01 18:05:06

标签: java scala audio

我正在尝试在Scala中连接mp3,尽管我实际上主要使用的是Java库。到目前为止,我已将必要的东西放在我的CLASSPATH上(请参阅此处:http://www.javazoom.net/mp3spi/documents.html以获取有关如何读取mp3的详细信息) 并写下以下内容:

import java.io._;
import java.io.IOException;
import java.io.SequenceInputStream;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;


object Main {
  def main(args: Array[String]) {
    val fileA = "Track 0000.mp3"
    val fileB = "Track 0001.mp3"

    try {
      var ClipA = AudioSystem.getAudioInputStream(new File(fileA))
      var ClipB = AudioSystem.getAudioInputStream(new File(fileB))

      var appendedFiles = new AudioInputStream(
                                new SequenceInputStream(ClipA, ClipB),     
                                ClipA.getFormat(), 
                                ClipA.getFrameLength() + ClipB.getFrameLength());


    } catch {
      case ioe: IOException => println(ioe.getMessage())
      case e: Exception => println(e.getMessage())
    }

  }
}

但我现在正在努力将mp3写入磁盘。谁能帮我吗?这是怎么做到的?

1 个答案:

答案 0 :(得分:0)

AudioSystem类有一个辅助方法来执行此操作,AudioSystem.write

public static int write(AudioInputStream stream, AudioFileFormat.Type fileType,
                          File out) throws IOException

您应该可以执行以下操作:

AudioSystem.write(appendedFiles, mp3AudioType, new File("/tmp/out.mp3"))

mp3AudioType作为mp3的正确AudioFileFormat.Type;也许只有AudioFileFormat.Type("MP3", "mp3")才有效。