java - Wav 文件数组列表。为什么这条线不起作用? java

标签 java arrays arraylist wav javasound

我有一个字符串数组列表,它会一一遍历这个列表,它应该播放 wav 文件。

在这一行“AudioInputStream ais = AudioSystem.getAudioInputStream(music(x));”音乐未被识别,它指出“找不到符号”。另外 (music.get(x)) 不起作用。然后整行加下划线,表明其不适用。我需要做什么?谢谢。

    String trackName;

    ArrayList<String> music = new ArrayList();
    music.add("c:\\01.wav");
    music.add("c:\\02.wav");
    music.add("c:\\03.wav");
    music.add("c:\\04.wav");

    byte[] buffer = new byte[4096];
    for(int x = 0; x < music.size(); x++){


      try{

            AudioInputStream ais = AudioSystem.getAudioInputStream(music(x));
            trackName = "The Current Track is " + music.get(x);
            System.out.println(trackName);
            AudioFormat format = ais.getFormat();
            SourceDataLine line = AudioSystem.getSourceDataLine(format);
            line.open(format);
            line.start();

      while (ais.available() > 0) {

            int len = ais.read(buffer);
            line.write(buffer, 0, len);

           }

        line.drain(); //wait for the buffer to empty before closing the line
        line.close();

            } 
      catch (Exception e) {

            e.printStackTrace();

            }
    }   
}

最佳答案

尝试改变你的线路:

AudioInputStream ais = AudioSystem.getAudioInputStream(music(x));

至:

AudioInputStream ais = AudioSystem.getAudioInputStream(new File(music.get(x)));

AudioSystem 不采用字符串作为参数来获取音频输入流。它需要 InputStream , URL ,或File ,我在上面演示了。

关于java - Wav 文件数组列表。为什么这条线不起作用? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15999564/

相关文章:

java - 在测试和生产环境中使用 Maven 和 Jenkins 部署到 tomcat

java - StringBuilder 应该在打印之前转换为 String 吗?

java - 更新Map值的有效方法

python - 如何从本地创建全局变量并存储它的先前值?

java - 异步任务 ArrayList 对象未从 doInBackground 传递到 onPostExecute

java - 将 hashmap 的 arraylist 放入另一个中

Java : Comparing two ArrayLists, 删除不匹配的值

java - 高效的树排序

链接部分对象数组的 Javascript 排序算法

php - 哪个更快/更有效 - 许多小的 MySQL 查询或一个大的 PHP 数组?