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

多媒体编程

开发平台:

Visual C++

  1. package com.axiosys.bento4;
  2. import java.util.ArrayList;
  3. public class Movie {
  4.     private ContainerAtom moov;
  5.     private ArrayList     tracks = new ArrayList();
  6.     
  7.     public Movie(ContainerAtom moov) {
  8.         this.moov = moov;
  9.         
  10.         for (int i=0; i<moov.getChildrenCount(); i++) {
  11.             Atom child = moov.getChild(i);
  12.             if (child.getType() == Atom.TYPE_TRAK) {
  13.                 TrakAtom trak = (TrakAtom)child;
  14.                 tracks.add(new Track(trak));
  15.             }
  16.         }
  17.     }
  18.     
  19.     public Atom findAtom(String path) {
  20.         return AtomUtils.findAtom(moov, path);
  21.     }
  22.     
  23.     public Track[] getTracks() {
  24.         Track[] result = new Track[tracks.size()];
  25.         tracks.toArray(result);
  26.         return result;
  27.     }
  28.     
  29.     public int[] getTrackIds() {
  30.         int[] result = new int[tracks.size()];
  31.         for (int i=0; i<result.length; i++) {
  32.             Track track = (Track)tracks.get(i);
  33.             result[i] = track.getId();
  34.         }
  35.         
  36.         return result;
  37.     }
  38.     
  39.     public Track getTrackById(int id) {
  40.         for (int i=0; i<tracks.size(); i++) {
  41.             Track track = (Track)tracks.get(i);
  42.             if (track.getId() == id) return track;
  43.         }
  44.         
  45.         return null;
  46.     }
  47.     public int getTrackIndex(int id) {
  48.         for (int i=0; i<tracks.size(); i++) {
  49.             Track track = (Track)tracks.get(i);
  50.             if (track.getId() == id) return i;
  51.         }
  52.         
  53.         return -1;
  54.     }
  55. }