示例#1
0
        /**
         * トリミングモードでのシーク位置を取得
         *
         * ちなみに、プレビューモードでは、mTrimmingSlider.CurrentPositionとシーク位置が一致する。
         */
        private double seekPosition(PositionOf seekTo)
        {
            double pos;

            switch (seekTo)
            {
            case PositionOf.START:
                pos = mTrimmingSlider.TrimStart;
                break;

            case PositionOf.END:
                pos = mTrimmingSlider.TotalRange - mTrimmingSlider.TrimEnd;
                break;

            case PositionOf.CURRENT:
            default:
                pos = mTrimmingSlider.AbsoluteCurrentPosition;
                break;
            }
            return(pos);
        }
示例#2
0
        /**
         * プレビューモードを終了して、トリミングモードに戻る。
         */
        private async Task stopPreview(PositionOf seekTo)
        {
            if (IsPlaying)
            {
                mPlayer.Pause();
            }
            if (!mPreviewing)
            {
                mPlayer.PlaybackSession.Position = TimeSpan.FromMilliseconds(seekPosition(seekTo));
                return;
            }
            mPreviewing = false;
            var loader = await WvvMediaLoader.LoadAsync(mPlayer, mOriginalSource, this);

            if (null != loader)
            {
                if (!mPreviewing)
                {
                    mPlayer.PlaybackSession.Position = TimeSpan.FromMilliseconds(seekPosition(seekTo));
                }
            }
        }