Java 音频(mp3)不总是播放且不再播放的问题

Java 音频(mp3)不总是播放且不再播放的问题,java,audio,mp3,Java,Audio,Mp3,首先,它演奏得很慢。下次我运行它时,它运行得非常顺利。现在它根本就不起作用了。我用youtube教程设置了它,找不到任何与我的代码不同的东西。这就是我认为的问题所在。我已经在java中广泛搜索了音频,但还没有找到成功的方法。这是我在调试中发现的: "terminated"Game [Java Application] "disconnected"game.Game at localhost:51874 "terminated, exit value: 0>C:\Program Fil

首先,它演奏得很慢。下次我运行它时,它运行得非常顺利。现在它根本就不起作用了。我用youtube教程设置了它,找不到任何与我的代码不同的东西。这就是我认为的问题所在。我已经在java中广泛搜索了音频,但还没有找到成功的方法。这是我在调试中发现的:

"terminated"Game [Java Application] 
"disconnected"game.Game at localhost:51874  
"terminated, exit value: 0>C:\Program Files\Java\jre1.8.0_60\bin\javaw.exe (Oct 16, 2015, 7:23:49 PM)   
将“”替换为,以便进行上述调试,因为由于某些原因无法显示 我还得到了这个错误代码

javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Source)
at com.sun.media.sound.DirectAudioDevice$DirectClip.implOpen(Unknown Source)
at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(Unknown Source)
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(Unknown Source)
at audio.AudioPlayer.<init>(AudioPlayer.java:30)
at game.Game.main(Unknown Source)
}

(套餐)游戏 (类)游戏

}

下面是java项目中的其他内容 资源- 音乐- Opening.mp3 JRE系统库 参考图书馆- /Game/Libs/tritonus_share.jar /Game/Libs/mp3spi1.9.5.jar /Game/Libs/jl1.0.1.jar 自由基- /Game/Libs/jl1.0.1.jar /Game/Libs/mp3spi1.9.5.jar
/Game/Libs/tritonus_share.jar

基本音频子系统不支持所有MP3电子节点,您可以从JavaZoomI中查找JLayer,从youtube视频中获取MP3,使用youtubetom3.org或类似的工具。从不同的网站下载能让它工作吗?或者可能不是来自youtube?为什么它有时会播放而不是其他人?我在玩它,当我使用while语句-while(w=true)时,它会工作。它不断地开始一首新的“歌曲”,而原来的仍在播放。我想我可以使用一个关键动作事件等来让它工作,但我仍然很好奇为什么它不能与if语句一起工作。因为它与基本音频系统不兼容。API中的硬件/软件解码实现之间的解码方式也可能存在问题。您可以尝试改用wave文件
 package audio;

 import javax.sound.sampled.*;

 public class AudioPlayer 
 {  
private Clip clip;

public AudioPlayer(String s)
{
    try
    {
        AudioInputStream ais = AudioSystem.getAudioInputStream(
                                getClass().getResourceAsStream(s));

            AudioFormat baseFormat = ais.getFormat();
            AudioFormat decodeFormat = new AudioFormat(
                    AudioFormat.Encoding.PCM_SIGNED,
                    baseFormat.getSampleRate(),
                    16,
                    baseFormat.getChannels(),
                    baseFormat.getChannels() * 2,
                    baseFormat.getSampleRate(),
                    false
                    );

        AudioInputStream dais = AudioSystem.getAudioInputStream(
                                decodeFormat, ais);
        clip = AudioSystem.getClip();
        clip.open(dais);

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }   
}

public void play()
{
    if (clip == null) return;
    stop();
    clip.setFramePosition(0);
    clip.start();
}
public void stop()
{
    if (clip.isRunning())
    {
        clip.stop();
    }
}
public void close()
{
    stop();
    clip.close();
}
 package game;
 import audio.AudioPlayer;
 public class Game
 {
static boolean w = true;
private static AudioPlayer BGMusic;
public static void main(String[] args) 
{   
    if (w = true)
    {
        BGMusic = new AudioPlayer("/Music/Opening.mp3");
        BGMusic.play(); 
    }
}