如何从阵列中随机播放和播放音频文件

时间:2016-09-03 16:18:09

标签: java arrays audio actionlistener shuffle

我的代码存在一些问题,我希望随机播放一个包含.mp3音频文件的文件数组,并在点击按钮时播放一个文件!!我绝对不知道如何做到这一点,我需要一些帮助,真正的帮助!!这是我的代码!.....它运行但它一次播放所有文件....我希望它随机化,并只播放文件中的一个。

C(n, 2) = n*(n-1)/2

1 个答案:

答案 0 :(得分:0)

如果它是一个包含你想要播放的文件的普通java数组,最简单的方法是简单地生成一个随机索引并从数组中获取该索引的对象:

//Index of the random song
int r = (int) (Math.random() * (songs.length - 1);
//Get the song from the array
songs[r]
...

修改

你说你想从阵列中播放一个随机声音,知道你的代码只是以正确的顺序播放阵列中的所有文件。

如果你只想玩一个,那么你必须删除for循环。

正确的代码:

click.addActionListener (new ActionListener (){
        public void actionPerformed (ActionEvent x) {
            //Get random filepath from the array
            Random rand = new Random();
            int random = rand.nextInt(word.length);
            String temp = word[random];

            InputStream in =null;
            AudioStream out = null;
            //Get the actual file from the path
            try {
                in = new FileInputStream(temp);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            try {
                out = new AudioStream(in);
            } catch (IOException e) {
                e.printStackTrace();
            }       
            //Play the file
            AudioPlayer.player.start(out);
            return;
        }
    });