Java 音频(mp3)不总是播放且不再播放的问题
首先,它演奏得很慢。下次我运行它时,它运行得非常顺利。现在它根本就不起作用了。我用youtube教程设置了它,找不到任何与我的代码不同的东西。这就是我认为的问题所在。我已经在java中广泛搜索了音频,但还没有找到成功的方法。这是我在调试中发现的: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
"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();
}
}