JAVA 문제풀이

강정우·2022년 7월 14일
0

JAVA

목록 보기
16/31
post-thumbnail

Main class 만들기

  • MP3 program을 만드는데 있어 여러 형태의 datatype을 저장할 수 있는 datatype이 존재하지 않아 객체로써 정의하기로 했다.
  • 이때 앞서 Music class에서 만든 생성자를 이용하여 만들겠다.
  • 그리고 뮤직리스트를 가변배열을 이용하여 만들겠다.
  • MP3 player library를 다운받아 사용하겠다.
  • 다음은 library를 import해오는 법이다.
  • 우선 바탕화면에 압축을 풀어 jar 형태로 둔다.
  • 다음 이클립스로 돌아와서 해당 javaproject에 build path를 설정하다.
  • 위에 libraries를 클릭하고 Classpath에 오른쪽에 있는 2번째 Add External JARs 즉, 외부의 jar 파일을 가져오기를 클릭한다.
  • 그리고 JAR 파일의 경로를 지정하고 Apply and Close 적용 후 닫기를 누르면 된다.
  • 마지막으로 import 후 객체를 생성하여 사용하면 된다.
  • 추가적으로 이것은 상대경로로 잡은거라 만일 위치를 옮긴다면 다시 경로를 잡아줘야한다.
  • 이 Jar 파일은 여러 객체를 모아놓아 사용자에게 서비스를 제공하기위한 형태로 사용자는 이미 인코딩되어 있는 상태의 코드를 열어볼 수 없다.
  • 위의 ArrayList도 사실 하나의 클래스이다 제일 뒤의 생성자인 ()이 그 증거이며 generate라는 기법으로 <> 안에 datatype을 집어넣으면 자동으로 변환하여 인식된다.
  • 코드
<style>
package music;

import java.util.ArrayList;
import java.util.Scanner;

import javazoom.jl.player.MP3Player;

public class Main {

	public static void main(String[] args) {
		ArrayList<Music> musicList = new ArrayList<Music>();
		String p = "C:\\music\\";
		Music music1 = new Music("ThatThat", "PSY", 216, p + "ThatThat-PSY" + ".mp3");
		Music music2 = new Music("TOMBOY", "I-DLE", 197, p + "TOMBOY-Girl" + ".mp3");
		Music music3 = new Music("Take My Hand", "IU", 211, p + "TakeMyHand-IU" + ".mp3");
		Music music4 = new Music("POP", "나연", 170, p + "POP-NAYEON" + ".mp3");
		Music music5 = new Music("LOVEDIVE", "IVE", 178, p + "LOVEDIVE-IVE" + ".mp3");
		musicList.add(music1);
		musicList.add(music2);
		musicList.add(music3);
		musicList.add(music4);
		musicList.add(music5);
		Scanner sc = new Scanner(System.in);
		int cnt = 0;
		MP3Player player = new MP3Player();
		System.out.println("=============music player==============");
		while (true) {
			System.out.println("0.재생목록 1.재생 2.일시정지 3.이전곡 4.다음곡 5.종료");
			int choice = sc.nextInt();
			if (choice == 0) {
				System.out.println("=============music list===============");
				for (int i = 0; i < musicList.size(); i++) {
					System.out.println(
							i + 1 + ". " + musicList.get(i).getTitle() + "-" + musicList.get(i).getSinger() + "\n");
				}
			} else if (choice == 1) {
				if (player.isPlaying() == false) {
					player.play(musicList.get(cnt).getPath());
					System.out.println("now ᴘʟᴀʏɪɴɢ: " + musicList.get(cnt).getTitle() + "-"
							+ musicList.get(cnt).getSinger() + "\r\n" + "	 ⚪─────────────────\r\n"
							+ "      ◄◄⠀▐▐⠀►► 0:00 / " + musicList.get(cnt).getTime() / 60 + ":"
							+ musicList.get(cnt).getTime() % 60 + "⠀───○ 🔊\r\n" + "");
				} else {
					System.out.println("=====player is already running=====");
				}
			} else if (choice == 2) {
				System.out.println("=====플레이어를 정지합니다.=====");
				if (player.isPlaying() == true) {
					player.stop();
				} else {
					System.out.println("=====player is already paused=====");
				}
			} else if (choice == 3) {
				if (player.isPlaying() == true) {
					player.stop();
				}
				if (cnt == 0) {
					cnt = musicList.size() - 1;
					player.play(musicList.get(cnt).getPath());
					System.out.println("now ᴘʟᴀʏɪɴɢ: " + musicList.get(cnt).getTitle() + "-"
							+ musicList.get(cnt).getSinger() + "\r\n" + "	 ⚪─────────────────\r\n"
							+ "      ◄◄⠀▐▐⠀►► 0:00 / " + musicList.get(cnt).getTime() / 60 + ":"
							+ musicList.get(cnt).getTime() % 60 + "⠀───○ 🔊\r\n" + "");
				} else {
					cnt--;
					player.play(musicList.get(cnt).getPath());
					System.out.println("now ᴘʟᴀʏɪɴɢ: " + musicList.get(cnt).getTitle() + "-"
							+ musicList.get(cnt).getSinger() + "\r\n" + "	 ⚪─────────────────\r\n"
							+ "      ◄◄⠀▐▐⠀►► 0:00 / " + musicList.get(cnt).getTime() / 60 + ":"
							+ musicList.get(cnt).getTime() % 60 + "⠀───○ 🔊\r\n" + "");
				}
			} else if (choice == 4) {
				if (player.isPlaying() == true) {
					player.stop();
				}
				if (cnt == musicList.size() - 1) {
					cnt = 0;
					player.play(musicList.get(cnt).getPath());
					System.out.println("now ᴘʟᴀʏɪɴɢ: " + musicList.get(cnt).getTitle() + "-"
							+ musicList.get(cnt).getSinger() + "\r\n" + "	 ⚪─────────────────\r\n"
							+ "      ◄◄⠀▐▐⠀►► 0:00 / " + musicList.get(cnt).getTime() / 60 + ":"
							+ musicList.get(cnt).getTime() % 60 + "⠀───○ 🔊\r\n" + "");
				} else {
					cnt++;
					player.play(musicList.get(cnt).getPath());
					System.out.println("now ᴘʟᴀʏɪɴɢ: " + musicList.get(cnt).getTitle() + "-"
							+ musicList.get(cnt).getSinger() + "\r\n" + "	 ⚪─────────────────\r\n"
							+ "      ◄◄⠀▐▐⠀►► 0:00 / " + musicList.get(cnt).getTime() / 60 + ":"
							+ musicList.get(cnt).getTime() % 60 + "⠀───○ 🔊\r\n" + "");
				}
			} else if (choice == 5) {
				if (player.isPlaying() == true) {
					player.stop();
				}
				System.out.println("=====플레이어를 종료합니다.=====");
				break;
			} else {
				System.out.println("======올바른 액션이 아닙니다.======");
			}
		}
		sc.close();
	}
}
</style>
profile
智(지)! 德(덕)! 體(체)!

0개의 댓글