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>