- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正处于用 Java 编写小型音乐/节奏游戏的早期阶段(通过 Slick 框架,它又使用 OpenAL,但这可能与此无关)。游戏需要读取(和播放)多个 WAV 格式的声音文件,但一些文件抛出 [javax.sound.sampled.UnsupportedAudioFileException] 异常。
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1102)
at org.newdawn.slick.openal.WaveData.create(WaveData.java:123)
at org.newdawn.slick.openal.SoundStore.getWAV(SoundStore.java:713)
at org.newdawn.slick.openal.SoundStore.getWAV(SoundStore.java:683)
at org.newdawn.slick.Sound.<init>(Sound.java:33)
这些文件可以在 Winamp 或 Foobar2000 中播放得很好,所以这意味着 Java 无法识别文件格式的某些变体。此时我有什么选择?
注意:有问题的文件是用户提供的,所以我不能事先转换它们(使用诸如 audacity 之类的东西)。任何转换步骤都必须在运行时完成。
最佳答案
关于 WAV
需要认识到的一件事文件是,它是一种容器格式——它可以保存许多不同格式的数据,包括 uncompressed PCM至 MP3 .
在这种情况下,我猜测正在使用的库正在连接到 Java Sound API ,并且 API 的实现不支持 WAV
文件中包含的数据格式,导致 UnsupportedAudioFileException
异常。
The files can be played back just fine in Winamp or Foobar2000, so this means Java just don't recognize some variants of the file format.
Winamp 等程序之所以能播放WAV
文件是因为它可能使用Windows Audio Compression Manager或者(如果我理解正确的话)DirectShow , 用于管理不同类型的 audio codecs .
Winamp 本身不需要知道如何解码WAV
文件中的音频数据;它要求 ACM 或 DirectShow 返回它可以处理的原始音频数据。 (或者也可能,数据直接发送到音频输出。)
What are my options at this point?
替代方案似乎以 Java Media Framework 的形式存在,似乎有 support many multimedia formats .
据说在使用“JMF 2.1.1 Windows Performance Pack”时它会挂接到 Windows ACM,因此它可能能够播放无法播放的 WAV
文件通过 Java Sound API。
关于java - UnsupportedAudioFileException 的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2843847/
我正在使用 AudioInputStream 在 Java 中进行一些基本的音频处理。我的程序可以正确加载用两个轨道编码的 16 位整数 PCM 音频,但不能用立体声编码。当呈现一个文件时(根据 ff
我正处于用 Java 编写小型音乐/节奏游戏的早期阶段(通过 Slick 框架,它又使用 OpenAL,但这可能与此无关)。游戏需要读取(和播放)多个 WAV 格式的声音文件,但一些文件抛出 [jav
这是我在这里的第一篇文章。我目前正在 Apache-Karaf 3.0.0 上的 Scala 中开发一个简单的 http 音频 servlet。我将它部署为一些 bundle 中的功能,这些 bund
我看到了多个关于流 MP3 流(如 Icecast)的 Stack Overflow 问题。他们都说使用 MP3SPI 库,我就是这样。 MP3SPI 用于支持音频/mpeg mime 类型。这就是我
我在尝试使用 Java 播放声音时遇到问题;如果我使用 AudioInputStream soundIn = AudioSystem.getAudioInputStream(new File("./s
我已经研究了好几天来弄清楚如何解决这个问题,但没有运气。 PlayN JavaSound类使用javax.sound.sampled.AudioSystem类来播放声音,并且似乎不支持mp3格式。 j
我已经成功地通过 TCP 套接字发送和读取文本和图像数据。但是我无法发送和读取音频流数据。 服务器端示例代码: public class ServerAudio { /** * @p
我正在尝试使用我在这里找到的代码在我的 java 程序中加载 wav 文件: How do I get a sound file's total time in Java? 但是,在第 14 行: A
我正在尝试使用此处另一个问题的答案来播放 OGG 音频文件:Playing ogg files in eclipse 使用javazoom library我为我的项目成功下载并配置了该文件,我正在尝试
我的 Java 项目中有两个类,一个是 反弹 import java.awt.*; import java.awt.event.*; import javax.swing.*; public clas
我正在使用 java 6 ,我正在尝试加载 wav 文件,以获取其持续时间如下: public static double getAudioFileDuration(File file) {
我是一名优秀的程序员,十分优秀!