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

多媒体编程

开发平台:

Visual C++

  1. package com.axiosys.bento4.ismacryp;
  2. import java.io.DataOutputStream;
  3. import java.io.IOException;
  4. import java.io.RandomAccessFile;
  5. import com.axiosys.bento4.Atom;
  6. public class SchmAtom extends Atom {
  7.     private int    schemeType;
  8.     private int    schemeVersion;
  9.     private String schemeUri;
  10.     public SchmAtom(int size, RandomAccessFile source) throws IOException {
  11.         super(TYPE_SCHM, size, true, source);
  12.         
  13.         schemeType = source.readInt();
  14.         schemeVersion = source.readInt();
  15.         
  16.         byte[] str = new byte[size-getHeaderSize()-8];
  17.         source.read(str);
  18.         int str_size = 0;
  19.         while (str_size < str.length && str[str_size] != 0) str_size++;
  20.         schemeUri = new String(str, 0, str_size, "UTF-8");
  21.         
  22.     }
  23.     public int getSchemeType() {
  24.         return schemeType;
  25.     }
  26.     public String getSchemeUri() {
  27.         return schemeUri;
  28.     }
  29.     public int getSchemeVersion() {
  30.         return schemeVersion;
  31.     }
  32.     
  33.     protected void writeFields(DataOutputStream stream) throws IOException {
  34.         stream.writeInt(schemeType);
  35.         stream.writeInt(schemeVersion);
  36.         byte[] uri_bytes = schemeUri.getBytes("UTF-8");
  37.         stream.write(uri_bytes);
  38.         int termination = size-getHeaderSize()-8-uri_bytes.length;
  39.         for (int i=0; i<termination; i++) {
  40.             stream.writeByte(0);
  41.         }
  42.     }
  43.     
  44.     public String toString(String indentation) {
  45.         StringBuffer result = new StringBuffer(super.toString(indentation));
  46.         result.append("n" + indentation + "  scheme_type    = " + Atom.typeString(schemeType));
  47.         result.append("n" + indentation + "  scheme_version = " + schemeVersion);
  48.         result.append("n" + indentation + "  scheme_uri     = " + schemeUri);
  49.         return result.toString();
  50.     }
  51. }