예제 #1
0
  @Override
  public int read(byte[] buf, int offset, int length) {
    //        int diff = (int) (ringBuffer.getTotalWritten() - ringBuffer.getTotalRead());
    //        if ( diff > info.rate * info.channels * 2){
    //            System.out.println("Warning: more than 1 second lag for audio. Adjusting..");
    //            ringBuffer.skip( diff );
    //        }

    //        if (masterClock != null)
    //            sync();

    int r = ringBuffer.read(buf, offset, length);
    if (r <= 0) {
      //            // put silence
      for (int i = 0; i < length; i++) {
        buf[offset + i] = 0x0;
      }
      return length;
    } else {
      lastPtsRead = System.nanoTime();
    }
    return r;
  }