Java 为什么这个程序不播放我的音乐文件?

Java 为什么这个程序不播放我的音乐文件?,java,mp3,jlayer,Java,Mp3,Jlayer,我试图使用JLayer库在Java中创建一个基本的音乐播放器,但它似乎不起作用。通过JFileChooser打开文件(.mp3)时,不会播放任何内容。下面是我的申请代码。请告诉我有什么问题 import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import javax.swing.JFileChoo

我试图使用JLayer库在Java中创建一个基本的音乐播放器,但它似乎不起作用。通过JFileChooser打开文件(.mp3)时,不会播放任何内容。下面是我的申请代码。请告诉我有什么问题

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javax.swing.JFileChooser;
import javazoom.jl.player.Player;
import javazoom.jl.decoder.JavaLayerException;

class MusicPlayer
{
public void Player()
{
    JFileChooser chooser = new JFileChooser();

    if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
        try
        {
            File track = chooser.getSelectedFile();
            FileInputStream trackstream = new FileInputStream(track);
            BufferedInputStream bufferedtrack = new BufferedInputStream(trackstream);

            try
            {
                Player player = new Player(bufferedtrack);
            }
            catch(JavaLayerException e)
            {
                System.out.println("Can't open file!");
            }

        }

        catch(FileNotFoundException e)
        {
        }
    } 
    else {

    }
 }
}

public class PlayerApp {



public static void main(String[] args) {

    new MusicPlayer().Player();

}

}

你忘了调用
player.play()玩家=新玩家后的方法(bufferedtrack)

您确实错过了开始播放请求的文件的
player.play()

try 
{
    Player player = new Player(bufferedtrack);
    player.play(); // add this line
}
catch(JavaLayerException e)
{
    System.out.println("Can't open file!");
}

此外,方法名称通常使用(第一个字母小写)书写。我建议将您的方法
void Player()
重命名为类似于
void loadDialogAndPlayFile()

哇!愚蠢的我:P非常感谢。谢谢:)现在可以了,但是当我试图关闭播放器时,它不会关闭,音乐会一直播放到曲目结束:(你可以尝试
player.close()
,它会停止当前流的播放。