728x90
public class Music {
// 노래 정보를 관리할 수 있는 설계도
// 설계도 특징: main 메소드가 있으면 안된다.
private String songPath;
private String singer;
private String song;
// 생성자 매소드 필요
// 클래스 명칭(
public Music(String songPath, String singer, String song) {
super();
this.songPath = songPath; //this가 없을 경우 위에 적용이 안된담
this.singer = singer;
this.song = song;
}
//getter 메소드
public String getSongPath() {
return songPath;
}
public String getSinger() {
return singer;
}
public String getSong() {
return song;
}
// 저장 확인
}
public class MusicMain {
public static void main(String[] args) {
// 1. MP3Pplayer 기능 불러오기
MP3Player mp3 = new MP3Player();
// 곡의 경로, 가수, 노래 제목의 정보를 알고 재생확인 가능
//>> 클래스로 해당 자료를 묶어서 관리!
// 공통적인 경로를 담을 수 있는 변수 생성
String path = "C:\\Users\\USER\\Desktop\\javaSTUDY\\Ex10MusicPlayer\\player\\";
Music m1 = new Music (path+"HypeBoy.mp3","뉴진스","HypeBoy");
Music m2 = new Music (path+"밤양갱.mp3","비비","밤양갱");
// 경로
ArrayList<Music> musiclist = new ArrayList<>();
musiclist.add(m1);
musiclist.add(m2);
// 또는 아래 형식으로 가능
musiclist.add(new Music(path+"LoveLee.mp3","악뮤","LoveLee"));
// 선택기능 만들기
Scanner sc = new Scanner(System.in);
//ㅐ생을 관리할 수 있는 index변수 생성
int i = 0;
while(true) {
System.out.println("[1]재생 [2]정지 [3]이전곡 [4]다음곡 [5]종료>>");
int input = sc. nextInt();
if(input==1) {
// 재생되고 있는 노래가 있는지 확인!
if(mp3.isPlaying()){
mp3.stop();
}
mp3.play(musiclist.get(i).getSongPath());
System.out.println(musiclist.get(i).getSinger()+"/"+musiclist.get(i).getSong()+"재생중입니다. ");
}else if(input==2) {
// 정지기능
if(mp3.isPlaying()){;
mp3.stop();
System.out.println(musiclist.get(i).getSinger()+"/"+musiclist.get(i).getSong()+"정지 되었습니다. ");
}else {
System.out.println("재생되는 곡이 없습니다.");
}
}else if(input==3) {
// 이전곡
// [4]>[3]>[2]>[1]>[0]>[4]
if(mp3.isPlaying()) {
mp3.stop();
}
i-- ;
if(i>=0) {
mp3.play(musiclist.get(i).getSongPath());
System.out.println(musiclist.get(i).getSinger()+"/"+musiclist.get(i).getSong()+"재생중입니다. ");
} else {
i = musiclist.size()-1;
mp3.play(musiclist.get(i).getSongPath());
System.out.println(musiclist.get(i).getSinger()+"/"+musiclist.get(i).getSong()+"재생중입니다. ");
}
}else if(input==4) {
// 다음곡
// 0번쩨 musiclist[0]>> [1]>[2]>[3]>
// 현재 재생중인 노래가 있다면 정지!
if(mp3.isPlaying()){
mp3.stop();
}
// 다음곡으로 넘어갈 수 있는 기능 생성
i++;
if(i<musiclist.size()) {
mp3.play(musiclist.get(i).getSongPath());
System.out.println(musiclist.get(i).getSinger()+"/"+musiclist.get(i).getSong()+"재생중입니다. ");
} else {
i=0;
mp3.play(musiclist.get(i).getSongPath());
System.out.println(musiclist.get(i).getSinger()+"/"+musiclist.get(i).getSong()+"재생중입니다. ");
}
}else if(input==5) {
System.out.println("mp3를 종료합니다.!");
break;
}else {
System.out.println("잘못 선택하셨습니다. ");
}
} // while 종료
출처: 스마트인재개발원
728x90
반응형
'DATA 분석 교육 과정 (2024.02~08) > JAVA' 카테고리의 다른 글
JAVA_추상화(추상메소드, 추상클래스) (0) | 2024.03.18 |
---|---|
JAVA_상속 (0) | 2024.03.18 |
JAVA_Collection, ArrayList (0) | 2024.03.17 |
JAVA_정렬(Bubble-Sort, Selection-Sort / Sequential search, Binary search) (0) | 2024.03.17 |
JAVA_배열, for-each, 이차배열 (0) | 2024.03.17 |