gpt4 book ai didi

java - 用 java 播放 mp3 时出现 LineUnavailableException

转载 作者:搜寻专家 更新时间:2023-11-01 02:33:46 24 4
gpt4 key购买 nike

我的目标是从 Java 播放 mp3 文件。对于我采用的每一种方法,它总是以 LineUnavailableException 失败。

    AudioInputStream inputStream = AudioSystem.getAudioInputStream(new URL("http://localhost:8080/agriserver/facebook/sound/test6.mp3"));
Clip clip = AudioSystem.getClip(info);
clip.open(inputStream);
clip.start();

修复失败的尝试:

  • 使用 Sun 的 mp3 插件。
  • 使用Jlayer 3rd 方库
  • 使用 Tritonus 第 3 方库
  • 使用 Sony Sound Forge、Adobe Sound Booth 对 mp3 重新编码,但运气不佳
  • 用不同的编码率和采样率重新编码mp3
  • 尝试使用JMF
  • 使用在其他应用程序中播放良好的互联网上的随机 mp3
  • 阅读有同样错误的帖子。所有帖子都没有有助于解决问题的答案。

异常(exception)情况:

Exception in thread "main" javax.sound.sampled.LineUnavailableException: line with format MPEG1L3 48000.0 Hz, unknown bits per sample, stereo, unknown frame size, 41.666668 frames/second,  not supported.    at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:494)    at com.sun.media.sound.DirectAudioDevice$DirectClip.implOpen(DirectAudioDevice.java:1280)    at com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:107)    at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1061)    at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1151)    at Demo.playMp3(Demo.java:83)

最佳答案

显然,必须将 mp3 读入一个流中。该流必须被读入第二个流以对其进行解码。以下代码有效:

        // read the  file
AudioInputStream rawInput = AudioSystem.getAudioInputStream(new ByteArrayInputStream(data));

// decode mp3
AudioFormat baseFormat = rawInput.getFormat();
AudioFormat decodedFormat = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED, // Encoding to use
baseFormat.getSampleRate(), // sample rate (same as base format)
16, // sample size in bits (thx to Javazoom)
baseFormat.getChannels(), // # of Channels
baseFormat.getChannels()*2, // Frame Size
baseFormat.getSampleRate(), // Frame Rate
false // Big Endian
);
AudioInputStream decodedInput = AudioSystem.getAudioInputStream(decodedFormat, rawInput);

关于java - 用 java 播放 mp3 时出现 LineUnavailableException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3125934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com