myMap.erase(iter, ++iter)
当我尝试编译程序时,它说,“AudioStream是内部专有API,可能会在将来的版本中删除...... AudioPlayer是内部专有API,可能会在将来的版本中删除......”
如何解决此问题?
答案 0 :(得分:1)
尝试这样的事情:
String filename="foo.wav";
Clip clip=AudioSystem.getClip();
AudioInputStream inputStream=AudioSystem.getAudioInputStream(new BufferedInputStream(Audio.class.getResourceAsStream(filename)));
if(inputStream!=null) {
clip.open(inputStream);
FloatControl gainControl=(FloatControl)clip.getControl(FloatControl.Type.MASTER_GAIN);
gainControl.setValue(+6.0f); // ?
clip.start();
// maybe do not wait?
while(clip.getMicrosecondLength()!=clip.getMicrosecondPosition())
Thread.yield(); // wait
// or at least don't wait here?
Thread.sleep(500);
clip.close();
}
适用于Windows 8.1
确保wave文件与包含代码的类相同,并确保它位于类路径中。
另外,您可能希望在单独的线程上执行此操作。