4

私は実際には主に Java ライブラリを使用していますが、Scala で mp3 を連結しようとしています。これまでのところ、必要なものを 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 をディスクに書き込むのに苦労しています。誰でも私を助けることができますか?これはどのように行われますか?

4

1 に答える 1

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"))

mp3mp3AudioTypeの権利であることに変わりはありません。AudioFileFormat.TypeたぶんAudioFileFormat.Type("MP3", "mp3")うまくいくでしょう。

于 2013-06-01T18:23:30.577 に答える