Java中的声音问题
Posted
技术标签:
【中文标题】Java中的声音问题【英文标题】:Sound trouble in Java 【发布时间】:2016-09-01 23:27:38 【问题描述】:你好, 我在 java 中使用 Sounds 时遇到了一些麻烦。 我只是想在我最新的复古 2d 游戏中实现一些花哨的 8 位声音...... 当我在 java eclipse 中运行它时,一切都很好,声音也能正常工作....
但一旦我运行完成的应用程序(应用程序本身运行完美......),声音不会播放,并且您可以在 3d 图片中看到错误。
图 1 显示了我的“声音方法”和图 2 我如何使用它。
我该如何解决这个问题?
【问题讨论】:
可能重复;试试这些答案:java.io.IOException: mark/reset not supported,java.io.IOException: mark/reset not supported。基本上,“您提供的输入流不支持设置标记并将流重置为该标记。”尝试将 FileInputStream 包装在 BufferedInputStream 中,如this answer 所示,或使用支持“标记/重置”的其他音频文件。 以后,请不要上传你的代码截图、stacktraces 或控制台输出,而是将文本复制并粘贴到问题中,突出显示并按
代码格式按钮其他用户更容易调试和运行您的代码。谢谢。
哦,好吧......这可能解释了我得到的反对意见......谢谢你告诉我......我不知道。我设法解决了这个问题。我在答案中发布了更改后的代码。不过还是谢谢你的帮助!
很酷,不用担心,很高兴听到您想通了,感谢您发布您的答案!
【参考方案1】:
我找到了解决方案。 我稍微更改了我的音频方法的代码......并且由于某种原因它现在可以工作了。 这是它的代码。
public void playSound(String soundFile)
try
AudioInputStream audioIn = Audiosystem.getAudioInputStream(this.getClass().getResource("/Sounds/" + soundFile));
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
catch (UnsupportedAudioFileException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
catch (LineUnavailableException e)
e.printStackTrace();
【讨论】:
别忘了接受你的回答,它会增加你的声望;)以上是关于Java中的声音问题的主要内容,如果未能解决你的问题,请参考以下文章