private void passThrough(ByteBuffer buffer) throws InterruptedException { offeredFrame.setTimecode(currentTimecode); offeredFrame.setBuffer(buffer); context.frameBuffer.consume(offeredFrame); }
@Override public void process(long timecode, ShortBuffer buffer) throws InterruptedException { outputBuffer.clear(); encoder.encode(buffer, outputBuffer); offeredFrame.setTimecode(timecode); offeredFrame.setVolume(context.playerOptions.volumeLevel.get()); offeredFrame.setBuffer(outputBuffer); context.frameBuffer.consume(offeredFrame); }
private void handleTrackFrameData(TrackFrameDataMessage message) throws Exception { RemoteAudioTrackExecutor executor = playingTracks.get(message.executorId); if (executor != null) { if (message.seekedPosition >= 0) { executor.clearSeek(message.seekedPosition); } AudioFrameBuffer buffer = executor.getAudioBuffer(); executor.receivedData(); AudioDataFormat format = executor.getConfiguration().getOutputFormat(); for (AudioFrame frame : message.frames) { buffer.consume(new ImmutableAudioFrame(frame.getTimecode(), frame.getData(), frame.getVolume(), format)); } if (message.finished) { buffer.setTerminateOnEmpty(); trackEnded(executor, false); } } }