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

多媒体编程

开发平台:

Visual C++

  1. package com.axiosys.bento4;
  2. import java.io.IOException;
  3. import java.io.RandomAccessFile;
  4. public class AudioSampleEntry extends MpegSampleEntry {
  5.     private int sampleRate;           
  6.     private int channelCount;
  7.     private int sampleSize;
  8.     protected AudioSampleEntry(int format, int size, RandomAccessFile source, AtomFactory atomFactory) throws IOException, InvalidFormatException {
  9.         super(format, size, source, atomFactory);
  10.     }
  11.     int getSampleRate()   { return (sampleRate>>16)&0xFFFF; }
  12.     int getSampleSize()   { return sampleSize;     }
  13.     int getChannelCount() { return channelCount;   }
  14.     protected void readFields(RandomAccessFile source) throws IOException {
  15.         super.readFields(source);
  16.         source.skipBytes(8);
  17.         channelCount = source.readUnsignedShort();
  18.         sampleSize = source.readUnsignedShort();
  19.         source.skipBytes(4);
  20.         sampleRate = source.readInt();
  21.     }
  22.     
  23.     public String toString(String indentation) {
  24.         StringBuffer result = new StringBuffer();
  25.         result.append(indentation+"[" + typeString(type) + "] size=" + getHeaderSize() + "+" + getPayloadSize());
  26.         result.append("n" + indentation + "  sample_rate   = " + getSampleRate());
  27.         result.append("n" + indentation + "  sample_size   = " + sampleSize);
  28.         result.append("n" + indentation + "  channel_count = " + channelCount);
  29.         for (int i=0; i<children.size(); i++) {
  30.             result.append("n");
  31.             result.append(((Atom)children.get(i)).toString(indentation+"  "));
  32.         }
  33.         
  34.         return result.toString();  
  35.     }
  36. }