@Override public void start() { if (line != null) { LOG.debug("Sound already started"); return; } LOG.debug("Start sound"); try { line = AudioSystem.getSourceDataLine(FORMAT); line.open(FORMAT, BUFFER_SIZE); } catch (LineUnavailableException e) { throw new RuntimeException(e); } line.start(); buffer = new byte[line.getBufferSize()]; divider = (int) (Gameboy.TICKS_PER_SEC / FORMAT.getSampleRate()); }
@Override public int getBufferSize () { return dataLine.getBufferSize(); }
@Override public int getBufferSize () { return dataLine.getBufferSize(); }
@Override public int getBufferSize () { return dataLine.getBufferSize(); }
@Override public int getBufferSize () { return dataLine.getBufferSize(); }
@Override public int getQueuedByteCount() { return auline.getBufferSize() - auline.available(); }
@Override public int getQueuedByteCount() { return auline.getBufferSize() - auline.available(); }
public boolean isOverrun() { return line.available() - line.getBufferSize() == 0; }
JSAudioRecording(JSMinim sys, byte[] samps, SourceDataLine sdl, AudioMetaData mdata) { system = sys; samples = samps; meta = mdata; format = sdl.getFormat(); finished = false; line = sdl; loop = false; play = false; numLoops = 0; loopBegin = 0; loopEnd = (int)AudioUtils.millis2BytesFrameAligned( meta.length(), format ); rawBytes = new byte[sdl.getBufferSize() / 8]; iothread = null; totalBytesRead = 0; bytesWritten = 0; shouldRead = true; }
@Override public int getFramePosition () { long timeSinceLastPositionSet = System.currentTimeMillis() - timelastPositionSet; int size = dataLine.getBufferSize() * (format.getChannels() / 2) / bufferUpdateFactor; // Step down to the next whole frame. size /= dataLine.getFormat().getFrameSize(); size *= dataLine.getFormat().getFrameSize(); int framesSinceLast = (int)((timeSinceLastPositionSet / 1000f) * dataLine.getFormat().getFrameRate()); int framesRemainingTillTime = size - framesSinceLast; return framePosition - framesRemainingTillTime; }
@Override public int getFramePosition () { long timeSinceLastPositionSet = System.currentTimeMillis() - timelastPositionSet; int size = dataLine.getBufferSize() * (format.getChannels() / 2) / bufferUpdateFactor; // Step down to the next whole frame. size /= dataLine.getFormat().getFrameSize(); size *= dataLine.getFormat().getFrameSize(); int framesSinceLast = (int)((timeSinceLastPositionSet / 1000f) * dataLine.getFormat().getFrameRate()); int framesRemainingTillTime = size - framesSinceLast; return framePosition - framesRemainingTillTime; }
@Override public int getFramePosition () { long timeSinceLastPositionSet = System.currentTimeMillis() - timelastPositionSet; int size = dataLine.getBufferSize() * (format.getChannels() / 2) / bufferUpdateFactor; // Step down to the next whole frame. size /= dataLine.getFormat().getFrameSize(); size *= dataLine.getFormat().getFrameSize(); int framesSinceLast = (int)((timeSinceLastPositionSet / 1000f) * dataLine.getFormat().getFrameRate()); int framesRemainingTillTime = size - framesSinceLast; return framePosition - framesRemainingTillTime; }
@Override public int getFramePosition () { long timeSinceLastPositionSet = System.currentTimeMillis() - timelastPositionSet; int size = dataLine.getBufferSize() * (format.getChannels() / 2) / bufferUpdateFactor; // Step down to the next whole frame. size /= dataLine.getFormat().getFrameSize(); size *= dataLine.getFormat().getFrameSize(); int framesSinceLast = (int)((timeSinceLastPositionSet / 1000f) * dataLine.getFormat().getFrameRate()); int framesRemainingTillTime = size - framesSinceLast; return framePosition - framesRemainingTillTime; }
URL url = new URL( "https://sssss/xxxxx/playback.php?access=subscriber&login=501%40mix&domain=mix.nms.mixnetworks.net&user=501&type=vmail&file=vm-20130109213243000082_mixnetworks_net.wav&time=20130110170638&auth=c43ff32546e126be9b895bbf225b2e75&submit=PLAY"); AudioInputStream fis = AudioSystem.getAudioInputStream(url); System.out.println("File AudioFormat: " + fis.getFormat()); AudioInputStream ais = AudioSystem.getAudioInputStream( AudioFormat.Encoding.PCM_SIGNED,fis); AudioFormat af = ais.getFormat(); System.out.println("AudioFormat: " + af.toString()); int frameRate = (int)af.getFrameRate(); System.out.println("Frame Rate: " + frameRate); int frameSize = af.getFrameSize(); System.out.println("Frame Size: " + frameSize); SourceDataLine line = AudioSystem.getSourceDataLine(af); line.addLineListener(new MyLineListener()); line.open(af); int bufSize = line.getBufferSize(); System.out.println("Buffer Size: " + bufSize); line.start(); byte[] data = new byte[bufSize]; int bytesRead; while ((bytesRead = ais.read(data,0,data.length)) != -1) line.write(data,0,bytesRead); line.drain(); line.stop(); line.close();
int bufSize = dataLine.getBufferSize(); boolean startOrMove = true; byte[] data = new byte[bufSize];
m_line = (SourceDataLine)AudioSystem.getLine(lineInfo); m_line.open(m_format, desiredBufferSize); s_logger.info("Audio output line created and openend. Requested buffer of " + desiredBufferSize / m_bytesPerFrame + " frames, got " + m_line.getBufferSize() / m_bytesPerFrame + " frames");
int bufSize = dataLine.getBufferSize(); boolean startOrMove = true; byte[] data = new byte[bufSize];
final int currLength = line.getBufferSize() - line.available(); if (currLength < maxLength) { final int length = Math.min(maxLength - currLength, buffer.data.length - playbackPos); if (playbackPos >= buffer.data.length + line.getBufferSize()) { buffer = null; line.stop();
+ "Buffer size is " + line.getBufferSize() + " bytes.\n" + "Format is " + line.getFormat().toString() + ".");
if ( line.available() == line.getBufferSize() )