将音乐/声音添加到Java程序

时间:2013-12-28 06:26:31

标签: java audio javasound

我正在制作一些迷你Java游戏,我想知道如何在我的程序中添加声音/音乐。我在youtube上观看了一段视频并按照提供的代码,但是我收到以下错误: java.io.IOException:无法从输入流

创建音频流

我注意到其他人用相同的代码问了同样的问题,但答案没有帮助。这是代码:

import sun.audio.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;

public class Project1 
{
public static void main(String[] args)
{
    JFrame frame = new JFrame();
    frame.setSize(200,200);
    frame.setLocationRelativeTo(null);
    JButton button = new JButton("Click me");
    frame.add(button);
    button.addActionListener(new AL());
    frame.setVisible(true);
}
    public static class AL implements ActionListener{
        public final void actionPerformed(ActionEvent e){
            music();
    }
}

    public static void music() 
    {       
        AudioPlayer MGP = AudioPlayer.player;
        AudioStream BGM;
        AudioData MD;

        ContinuousAudioDataStream loop = null;

        try
        {
            InputStream test = new FileInputStream("C:\\Music1.wmv");
            BGM = new AudioStream(test);
            AudioPlayer.player.start(BGM);
            //MD = BGM.getData();
            //loop = new ContinuousAudioDataStream(MD);

        }
        catch(FileNotFoundException e){
            System.out.print(e.toString());
        }
        catch(IOException error)
        {
            System.out.print(error.toString());
        }
        MGP.start(loop);
    }


}

3 个答案:

答案 0 :(得分:1)

InputStream test = new FileInputStream("C:\\Music1.wmv");

Java Sound不支持WMV&我没有听说过支持它的服务提供商接口。您需要将声音转换为较旧的文件类型。

答案 1 :(得分:0)

使用AudioInputStream将音频文件作为输入,请参阅this

答案 2 :(得分:0)

尝试使用:

InputStream test = new FileInputStream("C:\\Music1.au");

或者:

InputStream test = new FileInputStream("C:\\Music1.wav");

只需将您的文件转换为其中一个音频文件即可。