コード例 #1
0
        internal static PlayRange Merge(this IMediaSource mediaSource, PlayRange first, PlayRange second)
        {
            if (!mediaSource.CanMerge(first, second))
            {
                throw new InvalidOperationException();
            }

            first  = mediaSource.Adjust(first);
            second = mediaSource.Adjust(second);

            if (mediaSource.HasNativeDuration())
            {
                return(PlayRange.Merge(first, second));
            }
            else
            {
                return(new PlayRange(first.Duration + second.Duration));
            }
        }