示例#1
0
  public final void readInputStream(InputStream input) throws IOException, ID3ReaderException {
    int rc;
    readerPosition = 0;
    char[] tagHeaderSource = readBytes(input, HEADER_LENGTH);
    tagHeader = createTagHeader(tagHeaderSource);
    if (tagHeader == null) {
      onNoTagHeaderFound();
    } else {
      rc = onStartTagHeader(tagHeader);
      if (rc == ACTION_SKIP) {
        onEndTag();
      } else {
        while (readerPosition < tagHeader.getSize()) {
          FrameHeader frameHeader = createFrameHeader(readBytes(input, HEADER_LENGTH));
          if (checkForNullString(frameHeader.getId())) {
            break;
          } else {
            rc = onStartFrameHeader(frameHeader, input);
            if (rc == ACTION_SKIP) {

              if (frameHeader.getSize() + readerPosition > tagHeader.getSize()) {
                break;
              } else {
                skipBytes(input, frameHeader.getSize());
              }
            }
          }
        }
        onEndTag();
      }
    }
  }