1

我有一个需要播放 mp3 和 aac 文件的 java 项目。我创建了一个 MediaPlayer 类,它使用通用代码通过 Java Sound API 播放声音文件。我的 CLASSPATH 中有两个注册为 Java Sound SPI 的 audo 解码库。(MP3SPI 和 JAAD)。

问题是 MP3SPI 似乎优先于 JAAD。这意味着当我播放 AAC 文件时,MP3SPI 会引发异常并且(显然)不会播放我的歌曲。当我从 CLASSPATH 中删除 MP3SPI 时,会调用正确的 SPI (JAAD),并且我的 AAC 文件可以正常播放。

由于这个问题可能更笼统地表示,我希望有人有解决这个问题的经验。

如何同时支持 MP3 和 AAC 解码/播放?

4

1 回答 1

0

听起来 MP3SPI 行为不端并且没有按照规范播放,即在应该抛出错误异常或不抛出异常时。

你基本上只有两个选择:

  1. 破解 MP3SPI 并修复它(查看它的AudioFileReader实现并验证它们的行为方式是否符合 javadocs 中指定的方式)。
  2. 使用不同的 mp3 服务提供商(例如这一个其中之一)。

祝你好运。

于 2014-09-26T13:15:35.137 回答