본문 바로가기

자바(java)

음악 플레이어: 자바를 사용하여 간단한 음악 플레이어를 만들어 음악을 재생합니다.

반응형

1. 내용 설명

이 프로그램은 자바를 사용하여 간단한 음악 플레이어를 구현합니다. 사용자는 이 플레이어를 통해 MP3 파일을 재생하고, 재생을 중지할 수 있습니다. 이 프로그램은 Swing을 이용한 기본적인 사용자 인터페이스를 제공하며, JLayer 라이브러리를 사용하여 MP3 파일을 재생합니다.

2. 프로그램 간 사용 함수 설명

  • play(String filePath): 선택한 MP3 파일을 재생합니다. 파일 경로를 매개변수로 받아 파일을 열고 재생을 시작합니다.
  • stop(): 현재 재생 중인 음악을 중지합니다. 이 함수는 음악이 재생 중일 때만 작동합니다.
  • main(String[] args): 메인 메소드로, 프로그램의 진입점입니다. 사용자 인터페이스를 생성하고 이벤트 리스너를 설정합니다.

3. 코딩 내용



import javazoom.jl.decoder.JavaLayerException;
import javazoohttp://m.jl.player.Player;
import javax.swing.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class MusicPlayer {
    private Player player;

    public void play(String filePath) {
        try {
            if (player != null) {
                player.close();
            }
            FileInputStream fileInputStream = new FileInputStream(filePath);
            player = new Player(fileInputStream);
            new Thread(() -> {
                try {
                    player.play();
                } catch (JavaLayerException e) {
                    e.printStackTrace();
                }
            }).start();
        } catch (FileNotFoundException | JavaLayerException e) {
            e.printStackTrace();
        }
    }

    public void stop() {
        if (player != null) {
            player.close();
        }
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("MP3 Player");
        MusicPlayer musicPlayer = new MusicPlayer();
        JButton playButton = new JButton("Play");
        JButton stopButton = new JButton("Stop");
        JFileChooser fileChooser = new JFileChooser();

        playButton.addActionListener(e -> {
            int returnVal = fileChooser.showOpenDialog(frame);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                musicPlayer.play(fileChooser.getSelectedFile().getAbsolutePath());
            }
        });

        stopButton.addActionListener(e -> musicPlayer.stop());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
        frame.add(playButton);
        frame.add(stopButton);
        frame.setVisible(true);
    }
}

 

 

4. 전문용어

  • JLayer: 자바에서 MP3 파일을 재생할 수 있게 하는 라이브러리입니다.
  • Player: JLayer 라이브러리의 클래스로, 오디오 파일의 재생을 담당합니다.
  • Swing: 자바의 GUI 라이브러리로, 사용자 인터페이스 요소를 제공합니다.
  • JFrame: Swing의 창(frame)을 생성하는 클래스입니다.
  • JButton: 클릭 가능한 버튼 요소를 생성하는 클래스입니다.
  • JFileChooser: 파일 선택기로, 사용자가 파일을 선택할 수 있게 합니다.
  • FileInputStream: 파일로부터 바이트 단위의 입력을 읽어들이는 클래스입니다.
  • Thread: 동시에 여러 작업을 수행할 수 있게 하는 자바의 스레드 클래스입니다.

 

5. 라이브러리 추가하기 

 JLayer 라이브러리를 사용하기 위해서는 먼저 라이브러리를 다운로드하고, 프로젝트에 추가해야 합니다.

JLayer 라이브러리 추가 방법
JLayer 라이브러리 다운로드: http://www.java2s.com/Code/Jar/j/Downloadjl10jar.htm

프로젝트에 라이브러리 추가:

IDE를 사용하는 경우: 사용 중인 IDE에서 프로젝트 설정으로 이동하여, 다운로드한 JLayer 라이브러리 파일(jl1.0.x.jar)을 라이브러리로 추가합니다. IntelliJ IDEA, Eclipse, NetBeans 등 대부분의 IDE는 'Project Structure' 또는 'Build Path' 설정에서 외부 JAR 파일을 추가할 수 있는 옵션이 있습니다.
명령줄을 사용하는 경우: 컴파일 명령에서 클래스 경로를 지정해야 합니다. 예를 들어, JLayer JAR 파일이 C:\libs\jl1.0.x.jar에 위치한다고 가정할 때, 다음과 같은 명령어를 사용합니다:

javac -encoding UTF-8 -classpath .;C:\libs\jl1.0.jar MusicPlayer.java
컴파일과 실행
컴파일 후, 실행 시에도 클래스 경로를 지정해야 합니다. 예를 들어:

java -classpath .;C:\libs\jl1.0.jar MusicPlayer
이 단계를 따라 JLayer 라이브러리를 정상적으로 추가하고, 오류 없이 프로그램을 컴파일하고 실행할 수 있어야 합니다.





반응형