Java如何播放从文件选择器中选择的mp3文件

标签 java mp3 jfilechooser

您好,我已经创建了一个文件选择器,我想知道是否有任何可能的方法来播放我可以从文件选择器中选择的 mp3 文件。如果可以的话如何实现?感谢您提前提供的建议。显然,当我单击文件时,没有任何反应,我需要的是单击 mp3 文件,当我点击打开时,我就可以收听它了。

这是我的文件选择器的代码。

  JFileChooser chooser = new JFileChooser();
       File F = new File("C:/");
       File namedir;
       File namepath;

       chooser.setCurrentDirectory(F);
       chooser.showOpenDialog(null);
       chooser.setDialogTitle("Choose file to play");
       chooser.setApproveButtonText("Play");
  namedir = chooser.getCurrentDirectory();
  namepath = chooser.getSelectedFile();
  System.out.print("the name of the the directory is "+namedir.getName());
  System.out.print("the name of the the path is "+namepath.getAbsolutePath());
   String fileName=null;

最佳答案

String fileName=null;
JFileChooser chooser = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter(
        "MP3 Files", "mp3");
    chooser.setFileFilter(filter);
    int returnVal = chooser.showOpenDialog(parent);
    if(returnVal == JFileChooser.APPROVE_OPTION) {
       fileName=     chooser.getSelectedFile().getName();
    }
MediaPlayer mediaPlayer = new MediaPlayer(new Media(fileName));
mediaPlayer.play();

这是完整的工作代码

import java.net.URL;
import java.util.concurrent.CountDownLatch;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.embed.swing.JFXPanel;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javax.swing.JFileChooser;
import javax.swing.SwingUtilities;
import javax.swing.filechooser.FileNameExtensionFilter;

/**
 *
 * @author Mayank Aggarwal
 */
public class MyAudio {

    public static void main(String[] args) {
        new MyAudio().start();
    }

    public void start() {

        String fileName = null;
        URL url;
        final CountDownLatch latch = new CountDownLatch(1);
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new JFXPanel(); // initializes JavaFX environment
                latch.countDown();
            }
        });
        try {
            latch.await();
        } catch (InterruptedException ex) {
            Logger.getLogger(MyAudio.class.getName()).log(Level.SEVERE, null, ex);
        }
        JFileChooser chooser = new JFileChooser();
        FileNameExtensionFilter filter = new FileNameExtensionFilter(
                "MP3 Files", "mp3");
        chooser.setFileFilter(filter);
        int returnVal = chooser.showOpenDialog(null);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            fileName = chooser.getSelectedFile().toURI().toString();

        }
        MediaPlayer mediaPlayer;
        mediaPlayer = new MediaPlayer(new Media(fileName));
        mediaPlayer.play();
    }
}

关于Java如何播放从文件选择器中选择的mp3文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23143148/

相关文章:

java - 如何从 ListView 中获取选定的值

android - 在媒体播放器 android 中流式传输 mp3 时出现错误(1,-1005)

C#4.0 使用 winmm.dll 以超过 192kbps 的速度播放 .mp3 文件时出现问题

java - JLabel 类型中的 setText(String) 方法不适用于参数(File)

java - 在 JTabbedPane Java 中添加 JFileChooser

java - 如何在 Spring Batch 中使用 StaxEventItemReader 处理复杂的 xml

java - 'correct' 实例化JPA管理器bean的方法?

php - 如何将 base64 字符串转换为音频 mp3 文件?

java - 如何创建类似于默认 Windows 框的文件选择器?

java - 如何停止Javax.Swing.timer?