【问题标题】:playing track in random order java以随机顺序播放曲目java
【发布时间】:2015-10-25 01:12:43
【问题描述】:

我在正确的轨道上吗?这必须以随机顺序播放 arraylist 中的每个曲目一次。

public void randomAllTrack() { 

    int shuffle = getNumberOfTracks();
    int shuffleplay = randomTrack.nextInt(shuffle);
    Track track = tracks.get(shuffleplay);
    int i=0;

    while(i < getNumberOfTracks())
    {player.startPlaying(track.getFilename());
        System.out.println("Now playing: " + track.getArtist() + " - "
        + track.getTitle());
        i++;}
}

【问题讨论】:

  • 差不多,但是您需要一种方法来跟踪您已经听过的歌曲,因此除非您将它们从轨道中删除,否则您将多次播放相同的歌曲。

标签: java random arraylist shuffle


【解决方案1】:

假设tracksCollection,您可以在执行Collections.shuffle(List) 之后使用for-each loop,我可以使用格式化的IO。类似的东西

public void randomAllTrack() {
    List<Track> randomTracks = new ArrayList<>(tracks);
    Collections.shuffle(randomTracks);
    for (Track track : randomTracks) {
        player.startPlaying(track.getFilename());
        System.out.printf("Now playing: %s - %s%n", track.getArtist(),
                track.getTitle());
    }
}

【讨论】:

  • 非常感谢,但它会同时播放所有曲目。我该如何解决?
【解决方案2】:

如果您只需要初始随机播放,请创建 List 并使用 Collection List<Track> tracks = new ArrayList<>(); Collections.shuffle(tracks); for (Track track : tracks) { System.out.println("Playing track: " track.getFilename()); }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 2016-01-13
    相关资源
    最近更新 更多