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 라이브러리를 정상적으로 추가하고, 오류 없이 프로그램을 컴파일하고 실행할 수 있어야 합니다.
'자바(java)' 카테고리의 다른 글
사진 슬라이드쇼: 이미지 파일을 가져와 자동으로 슬라이드쇼를 생성합니다. (0) | 2023.12.19 |
---|---|
텍스트 에디터: 텍스트 파일을 편집하고 저장하는 기능을 갖춘 텍스트 에디터를 개발합니다. (0) | 2023.12.19 |
15강: 자바 생태계와 현업 개발 (0) | 2023.12.18 |
14강: 프레임워크와 라이브러리 (0) | 2023.12.18 |
13강: 웹 개발과 Servlets (0) | 2023.12.17 |