TkhdAtom.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 TkhdAtom extends Atom {
  6.     private int trackId;
  7.     private int duration;
  8.     private int creationTime;
  9.     private int modificationTime;
  10.     private int width;
  11.     private int height;
  12.     private int layer;
  13.     private int alternateGroup;
  14.     private int volume;
  15.     
  16.     int getDuration() { return duration; }
  17.     int getTrackId()  { return trackId;  }
  18.     public TkhdAtom(int size, RandomAccessFile source) throws IOException {
  19.         super(TYPE_TKHD, size, true, source);
  20.         
  21.         if (version == 0) {
  22.             // we only deal with version 0 for now
  23.             creationTime = source.readInt();
  24.             modificationTime = source.readInt();
  25.             trackId = source.readInt();
  26.             source.skipBytes(4);
  27.             duration = source.readInt();
  28.         } else {
  29.             source.skipBytes(32);
  30.         }
  31.         source.skipBytes(8);
  32.         layer = source.readUnsignedShort();
  33.         alternateGroup = source.readUnsignedShort();
  34.         volume = source.readUnsignedShort();
  35.         source.skipBytes(2+9*4);
  36.         width = source.readInt();
  37.         height = source.readInt();
  38.     }
  39.     
  40.     protected void writeFields(DataOutputStream stream) throws IOException {
  41.         // not implemented yet
  42.         throw new RuntimeException("not implemented yet");
  43.     }
  44.     public String toString(String indentation) {
  45.         StringBuffer result = new StringBuffer(super.toString(indentation));
  46.         result.append("n" + indentation + " track_id          = " + trackId);
  47.         result.append("n" + indentation +"  duration          = " + duration);
  48.         result.append("n" + indentation +"  creation_time     = " + creationTime);
  49.         result.append("n" + indentation +"  modification_time = " + modificationTime);
  50.         result.append("n" + indentation +"  width             = " + width);
  51.         result.append("n" + indentation +"  height            = " + height);
  52.         result.append("n" + indentation +"  alternate_group   = " + alternateGroup);
  53.         result.append("n" + indentation +"  layer             = " + layer);
  54.         result.append("n" + indentation +"  volume            = " + volume);
  55.         
  56.         return result.toString();  
  57.     }
  58. }