@Override public void run() { synchronized (LinePool.this) { for (SourceDataLine sourceDataLine : freeLines) { if (sourceDataLine.isOpen()) { sourceDataLine.close(); log.debug("Closed line {}", sourceDataLine); } } } } }, LINE_CLEANUP_INTERVAL, LINE_CLEANUP_INTERVAL);
synchronized (LinePool.this) { try { if (!line.isOpen()) { line.open(); line.addLineListener(event -> {
private boolean isOpen(){ if(myOutputLine == null){ return false; } return myOutputLine.isOpen(); }
@Override public boolean isOpen () { return dataLine.isOpen(); }
@Override public boolean isOpen () { return dataLine.isOpen(); }
@Override public boolean isOpen () { return dataLine.isOpen(); }
@Override public boolean isOpen () { return dataLine.isOpen(); }
public boolean isOpen() { return line != null && line.isOpen(); }
void close() { if (line.isOpen()) { // TODO: This might cause a glitch if audio is currently playing? line.close(); } }
/** * Reset counters. */ public void changeSong() { if (audio != null && audio.isOpen()) audio.close(); audio = null; positionOffset = 0; }
public void flush() { if (line != null && line.isOpen()) line.flush(); }
public void stop() { if (line != null && line.isOpen()) line.stop(); }
public void start() { if (line != null && line.isOpen()) line.start(); }
@Override public int onAudioData(byte[] data) { if (audioLine != null && audioLine.isOpen()) { if (!audioLine.isRunning()) { audioLine.start(); } int toWrite = Math.min(audioLine.available(), data.length); if (toWrite == audioLine.available()) log.trace("full! toWrite: " + toWrite + " instead of: " + data.length); return audioLine.write(data, 0, toWrite); } else { return 0; } }
@Override public void trackEnded(Link link, boolean forcedEnd) { if (!forcedEnd) { if (audio != null && audio.isOpen()) { audio.drain(); } } if (!next()) { pause(); currentTrack = null; audio = null; } }
private void loadDataLine() { final DataLine.Info dataInfo = new DataLine.Info(SourceDataLine.class, this.sound.getFormat()); try { this.dataLine = (SourceDataLine) AudioSystem.getLine(dataInfo); if (!dataLine.isOpen()) { this.dataLine.open(); } } catch (final LineUnavailableException e) { log.log(Level.SEVERE, e.getMessage(), e); } }
private void killTheLine() { if(myOutputLine != null && myOutputLine.isOpen()) { if(myOutputLine.isActive()) { myOutputLine.stop(); } myOutputLine.flush(); myOutputLine.close(); } } }
private void ensureSourceDataLineIsReleased(){ if(sourceDataLine!=null) if(sourceDataLine.isOpen()){ if(sourceDataLine.isRunning() || sourceDataLine.isActive()) sourceDataLine.stop(); sourceDataLine.close(); } sourceDataLine=null; }//end ensureSourceDataLineIsReleased()
if ( line.isOpen() )