[ java ] MVC 패턴 적용 방식 - 음악재생 플레이어
페이지 정보
작성자 웹지기 댓글 2건 조회 5,792회 작성일 20-12-21 17:13본문
MVC 패턴 적용 방식 - 음악재생 플레이어
M - Model Class
V - View Class
C - Controller Class
모델은 클래스의 멤버변수, 멤버함수 등
뷰는 클래의 모델에 포함된 데이터를 시각화
콘트롤러는 클래스의 모델과 뷰 모두에 영향을 주며 데이터의 흐름을 제어, 데이터의 갱신등
----- Music.java -----
public class Music {
//Model Class
private String musicName;
private String singer;
private int playTime;
private String musicPath;
public Music(String musicName, String singer, int playTime, String musicPath) {
super();
this.musicName = musicName;
this.singer = singer;
this.playTime = playTime;
this.musicPath = musicPath;
}
public String getMusicName() {
return musicName;
}
public String getSinger() {
return singer;
}
public int getPlayTime() {
return playTime;
}
public String getMusicPath() {
return musicPath;
}
}
----- Main.java -----
import java.util.Scanner;
public class Main {
// View Class
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
MusicPlayer p = new MusicPlayer();
while(true) {
System.out.print("[1]재생 [2]정지 [3]다음곡 [4]이전곡 [5]종료 : ");
int menu = sc.nextInt();
Music m;
switch(menu) {
case 1 :
m = p.play();
System.out.println(musicInfo(m));
break;
case 2 :
String msg = p.stop();
System.out.println(msg);
break;
case 3 :
m = p.nextPlay();
System.out.println(musicInfo(m));
break;
case 4 :
m = p.previewPlay();
System.out.println(musicInfo(m));
break;
}
if(menu == 5) {
String msg = p.stop();
System.out.println("프로그램 종료");
break;
}
}
sc.close();
}
private static String musicInfo(Music m) {
return m.getMusicName()+", "+m.getSinger()+", "+changeTime(m);
}
private static String changeTime(Music m) {
return m.getPlayTime()/60+"분"+m.getPlayTime()%60+"초";
}
}
----- MusicPlayer.java -----
import java.util.ArrayList;
import javazoom.jl.player.MP3Player;
public class MusicPlayer {
//Controller Class
ArrayList<Music> musicList = new ArrayList<Music>();
int curIndex = 0;
MP3Player mp3 = new MP3Player();
public MusicPlayer() {
//음악 전체 목록
musicList.add(new Music("깡", "Rain", 100, "D://java/MusicPlayer/music/Rain - 깡.mp3"));
musicList.add(new Music("Dalla", "Dalla", 120, "D://java/MusicPlayer/music/Itzy - Dalla Dalla.mp3"));
musicList.add(new Music("SOLO", "JENNIE", 200, "D://java/MusicPlayer/music/JENNIE - SOLO.mp3"));
}
public Music play() {
//현재 재생 객체 반환
Music m = musicList.get(curIndex);
if(mp3.isPlaying()) {
mp3.stop();
}
mp3.play(musicList.get(curIndex).getMusicPath());
return m;
}
public Music nextPlay() {
curIndex++;
if(curIndex == musicList.size()) {
curIndex = 0;
}
if(mp3.isPlaying()) {
mp3.stop();
}
mp3.play(musicList.get(curIndex).getMusicPath());
/*
//확인용
Music m = musicList.get(curIndex);
System.out.println(m);
return m;
*/
return musicList.get(curIndex);
}
public Music previewPlay() {
curIndex--;
if(curIndex < 0) {
curIndex = musicList.size()-1;
}
if(mp3.isPlaying()) {
mp3.stop();
}
mp3.play(musicList.get(curIndex).getMusicPath());
/*
//확인용
Music m = musicList.get(curIndex);
System.out.println(m);
return m;
*/
return musicList.get(curIndex);
}
public String stop() {
if(mp3.isPlaying()) {
mp3.stop();
}
return "노래가 정지되었습니다.";
}
}
첨부파일
- player.jar (146.2K) 0회 다운로드 | DATE : 2020-12-21 18:10:05
댓글목록
웹지기님의 댓글
웹지기 작성일
player.jar 파일 등록 방법
MusicPlayer 프로젝트명위 마우스 오른쪽 > Build Path > Configure Build Path > Libraries > Add External JARs > 해당파일의 경로 선택 > player.jar 선택
웹지기님의 댓글
웹지기 작성일음악파일의 경로는 해당폴더에 음악 파일이 있어야 재생이 된다.