【问题标题】:Concatenate MP3s in Scala / Java在 Scala / Java 中连接 MP3
【发布时间】:2013-06-01 18:05:05
【问题描述】:

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

【问题讨论】:

  • 您实际上可以只连接 MP3 文件。一些 ID3/元数据将关闭,但这对许多应用程序来说不是问题。

标签: java scala audio


【解决方案1】:

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") 会起作用。

【讨论】:

    猜你喜欢
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 2012-05-13
    • 2017-06-22
    • 1970-01-01
    相关资源
    最近更新 更多