我有一个需要播放mp3和aac文件的java项目。我创建了一个MediaPlayer类,它使用通用代码通过Java Sound API播放声音文件。我的CLASSPATH中有两个音频解码库,它们被注册为Java Sound SPI。 (MP3SPI和JAAD)。
问题是MP3SPI似乎优先于JAAD。这意味着当我播放AAC文件时,MP3SPI会抛出异常并且(显然)不播放我的歌曲。当我从CLASSPATH中删除MP3SPI时,会调用正确的SPI(JAAD),并且我的AAC文件可以正常播放。
由于这个问题可能更具代表性,我希望有人有一些解决这个问题的经验。
如何为MP3和MP3提供支持AAC解码/播放?
答案 0 :(得分:0)
听起来像MP3SPI是行为不端而且没有遵守规范,即在错误的情况下抛出错误的例外情况,或者没有。
您基本上只有两个选项:
AudioFileReader
实现,并验证它们的行为方式与javadoc中指定的方式相同。)