HdlrAtom.java
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:2k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. package com.axiosys.bento4;
  2. import java.io.DataOutputStream;
  3. import java.io.IOException;
  4. import java.io.RandomAccessFile;
  5. public class HdlrAtom extends Atom {
  6.     private int    handlerType;
  7.     private String handlerName;
  8.     
  9.     public HdlrAtom(int size, RandomAccessFile source) throws IOException {
  10.         super(TYPE_HDLR, size, true, source);
  11.         
  12.         source.skipBytes(4);
  13.         handlerType = source.readInt();
  14.         source.skipBytes(12);
  15.         
  16.         // read the name unless it is empty
  17.         int nameSize = size-(FULL_HEADER_SIZE+20);
  18.         if (nameSize > 0) {
  19.             byte[] name = new byte[nameSize];
  20.             source.read(name);
  21.             int nameChars = 0;
  22.             while (nameChars < name.length && name[nameChars] != 0) nameChars++;
  23.             handlerName = new String(name, 0, nameChars, "UTF-8");
  24.         }
  25.     }
  26.     public String getHandlerName() {
  27.         return handlerName;
  28.     }
  29.     
  30.     public int getHandlerType() {
  31.         return handlerType;
  32.     }
  33.     
  34.     protected void writeFields(DataOutputStream stream) throws IOException {
  35.         // not implemented yet
  36.         throw new RuntimeException("not implemented yet");
  37.     }
  38.     public String toString(String indentation) {
  39.         StringBuffer result = new StringBuffer(super.toString(indentation));
  40.         result.append("n" + indentation + " handler_type      = " + Atom.typeString(handlerType));
  41.         result.append("n" + indentation +"  handler_name      = " + handlerName);
  42.         
  43.         return result.toString();  
  44.     }
  45. }