[ java ] MVC 패턴 적용 방식 - 음악재생 플레이어 > java

본문 바로가기

사이트 내 전체검색

java

[ java ] MVC 패턴 적용 방식 - 음악재생 플레이어

작성일 20-12-21 17:13

페이지 정보

작성자 웹지기 조회 5,790회 댓글 2건

본문

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 "노래가 정지되었습니다.";

    }

}

 


추천0

비추천 0

첨부파일

댓글목록

웹지기님의 댓글

profile_image 웹지기
작성일

player.jar 파일 등록 방법
MusicPlayer 프로젝트명위 마우스 오른쪽 > Build Path > Configure Build Path > Libraries > Add External JARs > 해당파일의 경로 선택 > player.jar 선택

웹지기님의 댓글

profile_image 웹지기
작성일

음악파일의 경로는 해당폴더에 음악 파일이 있어야 재생이 된다.

전체 113건 2 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기