gpt4 book ai didi

java - Java 中的音乐循环

转载 作者:行者123 更新时间:2023-11-29 09:46:06 25 4
gpt4 key购买 nike

美好的一天!

我正在做一款游戏,我希望它有背景音效。我为它创建了一个类,并在我的主类中调用它。我的代码如下:

import sun.audio.*;
import java.io.*;

public class Sound {

public void music() {

AudioStream backgroundMusic;
AudioData musicData;
AudioPlayer musicPlayer = AudioPlayer.player;
ContinuousAudioDataStream loop = null;
try {
backgroundMusic = new AudioStream(new FileInputStream("chickendance.wav"));
musicData = backgroundMusic.getData();
loop = new ContinuousAudioDataStream(musicData);
musicPlayer.start(loop);
} catch (IOException error) { System.out.println(error);
}
}
}

这是我的主类。

public class HangmanLauncher extends javax.swing.JFrame {

public HangmanLauncher() {
initComponents();
Sound sound = new Sound();
sound.music();
}

我的问题是音乐无法播放。 错误:java.io.IOException:无法从输入流创建音频流。 这是什么意思?我的文件类型是 Microsoft Wave Sound Format,大小是 796kb。我可以知道我做错了什么吗?您的建议将不胜感激。提前谢谢你。

最佳答案

我可以使用以下代码播放 .wav 文件。

请注意,如果您使用的是 JFrame,您可能希望在线程中播放声音文件,以便继续其他操作。

import javax.sound.sampled.*;
import java.io.*;
import javax.swing.*;

AudioInputStream as1 = AudioSystem.getAudioInputStream(new java.io.FileInputStream("chickenDance.wav"));
AudioFormat af = as1.getFormat();
Clip clip1 = AudioSystem.getClip();
DataLine.Info info = new DataLine.Info(Clip.class, af);

Line line1 = AudioSystem.getLine(info);

if ( ! line1.isOpen() )
{
clip1.open(as1);
clip1.loop(Clip.LOOP_CONTINUOUSLY);
clip1.start();
}

关于java - Java 中的音乐循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4875080/

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