示例#1
0
        public Time GetDurationOfManagedAudioMediaFlattened()
        {
            ManagedAudioMedia audioMedia = GetManagedAudioMedia();

            if (audioMedia != null)
            {
                Time dur_ = audioMedia.Duration;
                if (dur_.AsLocalUnits <= 0)
                {
                    return(null);
                }
                return(dur_);
            }

#if ENABLE_SEQ_MEDIA
            SequenceMedia seq = GetManagedAudioSequenceMedia();
            if (seq != null)
            {
                Time durSeq = seq.GetDurationOfManagedAudioMedia();
                if (durSeq != null)
                {
                    return(durSeq);
                }
            }
#endif //ENABLE_SEQ_MEDIA

            Time dur = new Time();
            for (int index = 0; index < mChildren.Count; index++)
            {
                TreeNode node     = mChildren.Get(index);
                Time     childDur = node.GetDurationOfManagedAudioMediaFlattened();
                if (childDur != null)
                {
                    dur.Add(childDur);
                }
            }
            if (dur.AsLocalUnits <= 0)
            {
                return(null);
            }
            return(dur);
        }