当前位置: 首页 > 知识库问答 >
问题:

在java中播放mp3时,如何解决此异常?

通鸿风
2023-03-14

我正在尝试使用我在Internet上找到的此代码控制mp3文件量,但在库中添加所有必需的jar后,我仍然无法这样做。

以下是我正在使用的内容:

try {
    AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("Z:\\Best day of my life.mp3"));
    Clip clip = AudioSystem.getClip();

    clip.open(audioInputStream);
    FloatControl gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
    gainControl.setValue(-10.0f); // Reduce volume by 10 decibels.
    clip.start();
} catch (UnsupportedAudioFileException | IOException | LineUnavailableException ex) {
    Logger.getLogger(VolumeTest.class.getName()).log(Level.SEVERE, null, ex);
}

如果我播放wav文件,它可以正常工作,但对于mp3,我会出现以下错误:

javax.sound.sampled.LineUnavailableException: line with format MPEG1L3 44100.0 Hz, unknown bits per sample, stereo, unknown frame size, 38.28125 frames/second,  not supported.
at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:513)
at com.sun.media.sound.DirectAudioDevice$DirectClip.implOpen(DirectAudioDevice.java:1304)
at com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:121)
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1085)
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1175)
at com.myPractice.VolumeTest.jButton1ActionPerformed(VolumeTest.java:115)
at com.myPractice.VolumeTest.access$000(VolumeTest.java:23)
at com.myPractice.VolumeTest$1.actionPerformed(VolumeTest.java:54)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6527)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6292)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4883)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

至于mp3支持,我已经导入了mp3spi1.9.5.jar、jl1.0.1.jar和tritonus-share.jar

共有1个答案

曹成双
2023-03-14

为了播放它们,您必须在程序中将它们转换为可以实际播放的文件类型,例如PCM。

请参考此链接

 类似资料:
  • 问题内容: 如何在Java应用程序中播放和文件?我正在使用。我尝试在互联网上查找类似以下示例的内容: 但是,这只会播放文件。 问题答案: 如何在Java应用程序中播放和文件?我正在使用。我尝试在互联网上查找类似以下示例的内容: 但是,这只会播放文件。

  • 我正在创建一个带有背景音乐的应用程序。我试着在课堂上演奏那首音乐: 我试过了: 当我把它放在我的文件的根目录中并使用它时: 我得到这个错误:javax.sound.sampled。不受支持的AudioFileException:无法从输入URL获取音频输入流更新我尝试使用JavaFX: 但是我得到了错误: 此行中的错误:MediaPlayer Player=new MediaPlayer(媒体);

  • 问题内容: 我正在尝试编写一个将从Soundcloud URL播放mp3的python脚本 这是我已经做的: 我尝试了许多选项,例如更改格式,频道,费率。而且我只是从扬声器中听到奇怪的声音,我搜索了Google以播放mp3,但没有找到任何信息。 我尝试通过传递mp3中的字节来创建对象,然后仅执行play函数。我没有收到任何错误:脚本正在运行,但没有任何播放。 我正在使用Python 3和Ubunt

  • 问题内容: 我收到mp3网址作为api调用的响应。我想播放该音频,那么我该怎么做?(iOS迅速) 这是我的回应 这是我的代码:: 我要去哪里错了? 问题答案: 我尝试了以下方法 添加以下方法, 和您的播放方法一样, 下载mp3文件,然后尝试播放,但AVAudioPlayer无法以某种方式为您下载mp3文件。我可以下载音频文件,然后播放器播放它。 请记住,将其添加到info.plist中,因为您是从

  • 本文向大家介绍python实现定时播放mp3,包括了python实现定时播放mp3的使用技巧和注意事项,需要的朋友参考一下 程序很简单,主要是 mp3play 模块的应用 演示图:   以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 我上传了一些MP3文件在我的谷歌驱动器。现在我想在我的flutter应用程序中使用audioPlayer包播放这些mp3文件。https://drive.google.com/file/d/1v8RBvEOpsEDlD_o7OA2TKgxysF-O5jUW/view?usp=sharing.这是我在谷歌驱动器中的mp3的公共共享链接。