【问题标题】:Unable to play an audio clip无法播放音频剪辑
【发布时间】:2013-09-13 17:07:56
【问题描述】:

目前我正在做一个项目。该项目包含声音,我无法尝试播放它们。

private void playSound(){
    try{
        AudioInputStream audioIn = AudioSystem.getAudioInputStream(this.getClass().getResource("delta/client/gui/resources/sound/ClipOfSound.mp3"));
        Clip clip = AudioSystem.getClip();
        clip.open(audioIn);
        clip.start();
    }catch(Exception err){
        err.printStackTrace();
    }
}

它给了我一个 NullPointerException。路径是正确的,我已经检查了很多次。我不知道问题是什么.. 任何帮助都非常感谢。

堆栈跟踪:

java.lang.NullPointerException
at com.sun.media.sound.StandardMidiFileReader.getSequence(Unknown Source)
at javax.sound.midi.MidiSystem.getSequence(Unknown Source)
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(Unknown Source)
at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
at delta.client.gui.main.ZButton$Button.playSound(ZButton.java:84)
at delta.client.gui.main.ZButton$Button.mousePressed(ZButton.java:62)
at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

第 84 行: AudioInputStream audioIn = AudioSystem.getAudioInputStream(this.getClass().getResource("delta/client/gui/resources/sound/ClipOfSound.mp3"));

【问题讨论】:

  • this.getClass().getResource("delta/client/gui/resources/sound/ClipOfSound.mp3" 什么返回这个?
  • NullPointerException 在哪一行?
  • 它返回内部类的对象..或者在这种情况下是“ZButton”。
  • 这条语句this.getClass().getResource("delta/client/gui/resources/sound/ClipOfSound.mp3是否返回null?
  • 看起来是这样,但是,我不知道为什么。文件存在且路径正确。我改成ZButton.class.getResource()...但是还是不行。

标签: java audio


【解决方案1】:

AudioInputStream 与 MP3 类型的文件不兼容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-03
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    相关资源
    最近更新 更多