/** * トリミングモードでのシーク位置を取得 * * ちなみに、プレビューモードでは、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); }
/** * プレビューモードを終了して、トリミングモードに戻る。 */ 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)); } } }