public void reset() { for (HSvolume vs : volumeControl) { if (vs != null) { vs.breakFade(); } } for (FloatControl c : gainControl) { c.setValue(c.getMinimum()); } for (AudioInputStream s : streams) { try { s.close(); } catch (IOException e) { e.printStackTrace(); } } for (Clip c : clips) { c.stop(); c.flush(); c.drain(); } gainControl = new ArrayList<>(); volumeControl = new ArrayList<>(); clips = new ArrayList<>(); }
public void setVolume(int instanceNumber, double volume) { if (volumeControl.get(instanceNumber) != null) { volumeControl.get(instanceNumber).breakFade(); } float vol = HSvolume.calcVol(volume); FloatControl gc = gainControl.get(instanceNumber); gc.setValue((float) vol); }
public int newPlayFromVolume(double vol) { final int ouri = clips.size(); streams.add(null); try { streams.set(streams.size() - 1, AudioSystem.getAudioInputStream(file)); } catch (Exception e) { e.printStackTrace(); } AudioFormat format = streams.get(streams.size() - 1).getFormat(); clips.add(null); DataLine.Info info = new DataLine.Info(Clip.class, format); try { clips.set(ouri, (Clip) AudioSystem.getLine(info)); } catch (Exception e) { e.printStackTrace(); } try { clips.get(ouri).open(streams.get(streams.size() - 1)); } catch (Exception e) { e.printStackTrace(); } float volume = HSvolume.calcVol(vol); gainControl.add((FloatControl) clips.get(ouri).getControl(FloatControl.Type.MASTER_GAIN)); volumeControl.add(null); gainControl.get(gainControl.size() - 1).setValue(volume); clips.get(ouri).loop(0); clips .get(ouri) .addLineListener( new LineListener() { public void update(LineEvent myLineEvent) { if (myLineEvent.getType() == LineEvent.Type.STOP || myLineEvent.getType() == LineEvent.Type.CLOSE) clips.get(ouri).close(); try { streams.get(ouri).close(); } catch (IOException e) { e.printStackTrace(); } } }); return ouri; }