2013-10-19 9 views
1

안녕하세요, 저는 여기에서 새로 왔습니다.자바 재생 목록의 노래 생성자

현재 자바를 사용하여 재생 목록을 만들고 있습니다. Song을 파일에서 가져 와서 재생 목록에 저장하겠습니다. 파일에서 가져와야한다는 것을 나타 내기 위해 노래 클래스에 뭔가를 넣어야합니까? 내가 누락 된 것들은 무엇입니까? 내 질문에 대답하십시오.

public class Song { 
    private Float playTime; 
    private String songName; 
    private String artist; 

    //getters 
    public Float getPlayTime() { return playTime; } 
    public String getSongName() { return songName; } 
    public String getArtist() { return artist; } 
} 

다음은 내 재생 목록 클래스입니다. (내 것이 아니야, 인터넷 어딘가에있어.)

public class Playlist { 

    //Instance variable 
    private List<Song> songs; //arraylist of songs 
    private String playlistName; //Playlist name 

    public Playlist(String name) { 
     songs = new ArrayList<Song>(); //initalize Arraylist to hold Song type 
     playlistName = name; 
    } 

    //Methods: 

    //Returns the playlist name 
    public String playlistName() { 
     return playlistName; 
    } 

    //adds Song s to Playlist 
    public boolean addSong(Song s) { 
     return songs.add(s); 
    } 

    //return list. Note return is List<Song>. 
    public List<Song> getList() { 
     System.out.print(playlistName + ":"); 
     for (int i = 0; i < songs.size(); i++) 
     System.out.print(songs.get(i)); 
     return songs; 
    } 

    public boolean removeSong(Song s) { 
     return songs.remove(s); 
    } 

    public double playlistTime() { 
     double sum = 0; 
     for (int j = 0; j < songs.size(); j++) 
      sum = sum + songs.get(j).getPlayTime(); 
     return sum; 
    } 

    public boolean isSongInPlaylist(String name) { 
     boolean x = false; 
     for (int i = 0; i < songs.size(); i++) 
     if (songs.get(i).getSongName().equalsIgnoreCase(name)) 
      x = true; 
     return x; 
    } 

    public void songsByArtist(String name) { 
     for (int i = 0; i < songs.size(); i++) 
      if(songs.get(i).getArtist().equals(name)) 
       System.out.println(songs.get(i).getArtist()); 
    } 

    public boolean addSongsFrom(Playlist p) { // enter code here 
     boolean x = true; 
     for (int i = 0; i < p.getList().size(); i++) 
      if (p.getList().get(i).getSongName().equals(songs.get(i).getSongName())) 
       x = x; 
      else 
       this.addSong(p.getList().get(i)); 
     return x; 
    } 

    public int totalSongs() { 
     return songs.size(); 
    } 

    public String toString() { 
     return playlistName; 
    } 
} 

답변

0

수업은 괜찮습니다. 기본 방법에서는 파일에서 노래를 읽어야합니다. 당신은 어떤 노래 형식을 다루고 싶은지 구체적으로 밝히지 않았습니다. Mp3, waw 또는 허구의 데이터가있는 단순한 txt 파일? 당신이 MP3의를 사용하려는 경우

예를 들어, MP3SPI 사용할 수 있습니다

File file = new File(YOUR_FILE_PATH); 
AudioFileFormat fileFormat = AudioSystem.getAudioFileFormat(file); 
    if (fileFormat instanceof TAudioFileFormat) { 
     Map<?, ?> properties = ((TAudioFileFormat) fileFormat).properties(); 
     String key = "duration"; 
     Long lengthOfFile= (Long) properties.get(key); 
     //get other properties, then instantiate the Song object, then call addSong() 
} 
관련 문제