java - 在 Scala/Java 中连接 MP3

标签 java scala audio

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

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 写入磁盘。谁能帮我吗?这是怎么做到的?

最佳答案

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 是正确的 AudioFileFormat.Type对于 mp3;也许只是 AudioFileFormat.Type("MP3", "mp3") 会起作用。

关于java - 在 Scala/Java 中连接 MP3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16875659/

相关文章:

java - 如何在 for 循环中将值存储在数组中?

scala - 类型类中的多个类型参数

audio - 使用 ffmpeg 将 WAV 文件的两个 channel 拆分为单独的立体声文件

javascript - 如何使音频在React中更流畅地循环播放?

java - 当我尝试使用具有相同名称和参数类型的两个方法时,为什么会出现编译错误?

java - 在 Java 中使用 RegEx,如何捕获由双竖线分隔的组(不包括双引号括起来的组)?

javascript - 是否可以从 jsp 的 java 部分执行 javascript 函数?

java - 如何修复损坏的类文件错误?

java - Scala 和@Inject 注解

java - 使用java修改wave文件