无法播放来自Play scala应用程序的

时间:2017-12-16 07:07:22

标签: java scala audio playframework

WAV文件有效,可以使用VLC播放。但是,play / scala应用程序无法播放并抛出此异常:

Caused by: com.sun.media.sound.RIFFInvalidDataException: Chunk size too big

代码:

def play() = {
  val in = new FileInputStream("/Users/xxx/hello_world.wav");
  val audioStream = new AudioStream(in);
  AudioPlayer.player.start(audioStream);
}

显然,当大小未包含在wav文件中但不确定时会发生这种情况。我能解决这个例外吗?

1 个答案:

答案 0 :(得分:1)

根据JDK bug report,问题是该文件大于2千兆字节:

  

尝试读取大于2 GiB的Wav文件会导致

     

RIFFInvalidDataException("块大小太大")

     

...

     

由于WAVE文件的大小最大可达4 GiB,因此应该可以使用大于当前可能的2 GiB的文件。

该错误报告说它已在JDK 9中修复。试用最新的JDK并查看是否可以修复它。

您可以将Play Framework与Java 9结合使用,但仍有一些瑕疵。最重要的是,在运行 sbt 时,您需要提供以下命令行选项。

SBT_OPTS="--add-modules java.xml.bind" sbt

Java 9对Play的支持是一项正在进行的工作。有关讨论和更新,请参阅此问题:https://github.com/playframework/playframework/issues/7879