SampleBuffer output = (SampleBuffer) decoder.decodeFrame(frameHeader, bitstream); byte[] array = MyShortToByte(output.getBuffer()); at.write(array, 0, array.length);
private void read() throws BitstreamException, IOException, DecoderException { Socket socket = new Socket(url.getHost(), url.getPort()); sendGetRequest(socket); InputStream is = socket.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); while (!"".equals(reader.readLine())) ; BufferedInputStream bis = new BufferedInputStream(is); Bitstream bitstream = new Bitstream(bis); Decoder decoder = new Decoder(); SampleBuffer buffer = new SampleBuffer(bitrate, 2); ByteBuffer byteBuffer = ByteBuffer.allocate(buffer.getBuffer().length * 2); byteBuffer.order(ByteOrder.LITTLE_ENDIAN); decoder.setOutputBuffer(buffer); while (!stop) { Header frame = bitstream.readFrame(); decoder.decodeFrame(frame, bitstream); bitstream.closeFrame(); byteBuffer.clear(); for (int i = 0; i < buffer.getBufferLength(); i++) { byteBuffer.putShort(buffer.getBuffer()[i]); } os.write(byteBuffer.array(), 0, byteBuffer.position()); buffer.clear_buffer(); } socket.close(); os.close(); }
@Override public int read (ByteBuffer buf) throws IOException { ShortBuffer sbuf = buf.asShortBuffer(); int total = 0; while (sbuf.hasRemaining() && _header != null) { if (_buffer == null) { try { _buffer = (SampleBuffer)_decoder.decodeFrame(_header, _istream); _istream.closeFrame(); _header = _istream.readFrame(); } catch (JavaLayerException e) { throw new IOException(e.toString()); } } int blen = _buffer.getBufferLength(), length = Math.min(sbuf.remaining(), blen - _offset); sbuf.put(_buffer.getBuffer(), _offset, length); if ((_offset += length) >= blen) { _offset = 0; _buffer = null; } total += (length * 2); } buf.position(buf.position() + total); return total; }
Decoder decoder = new Decoder(); while (!done) { Header frameHeader = bitStream.readFrame(); if (frameHeader == null) { done = true; } else { SampleBuffer output = (SampleBuffer) decoder.decodeFrame(frameHeader, bitStream); short[] next = output.getBuffer(); for(int i=0; i<next.length; i++) System.out.print(" "+next[i]); pcmOut = concatArrays(pcmOut, next); //do whatever with your samples }
@Override public int read (ByteBuffer buf) throws IOException { ShortBuffer sbuf = buf.asShortBuffer(); int total = 0; while (sbuf.hasRemaining() && _header != null) { if (_buffer == null) { try { _buffer = (SampleBuffer)_decoder.decodeFrame(_header, _istream); _istream.closeFrame(); _header = _istream.readFrame(); } catch (JavaLayerException e) { throw new IOException(e.toString()); } } int blen = _buffer.getBufferLength(), length = Math.min(sbuf.remaining(), blen - _offset); sbuf.put(_buffer.getBuffer(), _offset, length); if ((_offset += length) >= blen) { _offset = 0; _buffer = null; } total += (length * 2); } buf.position(buf.position() + total); return total; }
final short[] b = _output.getBuffer();
if(out != null) out.write(output.getBuffer(), 0, output.getBufferLength());
for (; framesReaded-- > 0 && (header = bitstream.readFrame()) != null; ) { SampleBuffer sampleBuffer = (SampleBuffer) mDecoder.decodeFrame(header, bitstream); short[] buffer = sampleBuffer.getBuffer(); mAudioTrack.write(buffer, 0, buffer.length); bitstream.closeFrame();
return output.getBuffer(); } catch (BitstreamException e) { throw new IOException("Bitstream error: " + e);
short[] pcm = output.getBuffer(); for (short s : pcm) { outStream.write(s & 0xff);
if(out != null) out.write(output.getBuffer(), 0, output.getBufferLength());
short[] pcm = output.getBuffer(); for (short s : pcm) { outStream.write(s & 0xff);
if(out != null) out.write(output.getBuffer(), 0, output.getBufferLength());
short[] pcm = buffer.getBuffer(); for (int i = 0; i < pcm.length-1; i += 2) { short l = pcm[i];
if (out!=null) out.write(output.getBuffer(), 0, output.getBufferLength());
if (out!=null) out.write(output.getBuffer(), 0, output.getBufferLength());
if (out!=null) out.write(output.getBuffer(), 0, output.getBufferLength());
len -= AudioMath.samplesToBytes(currentSample - totalSamples, audioFormat.getFrameSize()); toByteArray(output.getBuffer(), sampleOffset / 2, len / 2, buf); sampleOffset = 0; readFrame = null;