▶ 프레이어 메인
package musicplayer;
import java.util.Scanner;
import javax.swing.plaf.metal.MetalComboBoxUI.MetalPropertyChangeListener;
import javazoom.jl.player.MP3Player;
// 플레이어 메인
public class MusicMain2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean isPlay = true;
MusicPlayer mPlayer = new MusicPlayer();
// 노래르 재생시켜 주는 라이브러리
MP3Player mp3 = new MP3Player();
System.out.println("======[ 음악 재생]======");
while (isPlay) {
System.out.print("[1]재생 [2]중지 [3]이전곡 [4] 다음곡 [5] 종료 : >");
int select = sc.nextInt();
switch (select) {
case 1:
System.out.println(mPlayer.play());
mp3.play(mPlayer.play().getPath());
break;
case 2:
System.out.println(mPlayer.stop());
mp3.stop();
break;
case 3:
Music m = mPlayer.prePlay();
if (m == null) {
System.out.println("이전곡을 재생할 수 없습니다.");
} else {
System.out.println(m);
}
break;
case 4:
m = mPlayer.nextPlay();
if (m == null) {
System.out.println("다음곡을 재생할 수 없습니다.");
} else {
System.out.println(m);
}
break;
case 5:
System.out.println("프로그램이 종료되었습니다.");
isPlay = false;
break;
default:
System.out.println("잘못된 번호입니다. 다시 입력해주세요.");
break;
}
}
}
}
▶ 음악 정보 클래스
package musicplayer;
// 곡 정보를 저장하는 틀
public class Music {
private String name;
private String artist;
private int playtime;
private String path;
public Music(String name, String artist, int playtime, String path) {
super();
this.name = name;
this.artist = artist;
this.playtime = playtime;
this.path = path;
}
public Music(String name, String artist, int playtime) {
super();
this.name = name;
this.artist = artist;
this.playtime = playtime;
}
public void setName(String name) {
this.name = name;
}
public void setArtist(String artist) {
this.artist = artist;
}
public void setPlaytime(int playtime) {
this.playtime = playtime;
}
public void setPath(String path) {
this.path = path;
}
public String getName() {
return name;
}
public String getArtist() {
return artist;
}
public int getPlaytime() {
return playtime;
}
public String getPath() {
return path;
}
@Override
public String toString() {
return artist + "가수 " + name + "재생중 " + playtime + "시간 재생중";
}
}
▶ 음악 정보 + 기능 클래스
package musicplayer;
import java.util.ArrayList;
// 플레이어 기능 정보 + 음악 정보 저장
public class MusicPlayer {
ArrayList<Music> musiclist;
public MusicPlayer() {
musiclist = new ArrayList<Music>();
musiclist.add(new Music("HIP", "mamamoo", 16, "music/HIP.mp3"));
musiclist.add(new Music("Hapjeong", "유산술", 30, "music/합정역 5번 출구.mp3"));
musiclist.add(new Music("Blueming", "IU", 58, "music/Blueming.mp3"));
musiclist.add(new Music("Workaholic", "볼빨간사춘기", 270, "music/Workahoic.mp3"));
}
int pos;
// 반환을 musiclist로 반환함 > 출력 자료형을 맞춰줌
public Music play() {
return musiclist.get(pos);
}
public String stop() {
return "노래를 중지합니다.";
}
public Music prePlay() {
if (pos == 0) {
return null;
} else {
pos--;
return musiclist.get(pos);
}
}
public Music nextPlay() {
if (pos == musiclist.size() - 1) {
return null;
} else {
pos++;
return musiclist.get(pos);
}
}
}
▶ 중요 내용 정리
toString은 그냥 불러오면 리턴으로 출려
뭔가 사용하면 객체를 불러오는거로 사용됨
mp3.play(mPlayer.play().getPath());
아래 코드와 동일함
Music m = mPlayer.play();
mp3.play(m.getPath());
'청년취업아카데미 > Java' 카테고리의 다른 글
[21.21.11 Java] JDBC (0) | 2021.01.11 |
---|---|
페스티벌 문제 (0) | 2021.01.11 |
[21.01.08 Java] 클래스 선언(필드 및 메소드) (0) | 2021.01.08 |
[21.01.08 Java] ArrayList (0) | 2021.01.08 |
[21.01.08 Java] 메소드 오버로딩(Method Over Loading) (0) | 2021.01.08 |