Quantcast
Channel: Windows Presentation Foundation (WPF) forum
Viewing all articles
Browse latest Browse all 18858

ClockController.Seek(TimeSpan offset, TimeSeekOrigin origin) not working at all for MediaElement

$
0
0

I am trying to control MediaElementusing MediaTimeLine. For this I am using MediaTimeLine's MediaClock'sController.

This won't work

controller.Seek(TimeSpan.FromMilliseconds(5000), TimeSeekOrigin.Duration);

whereas, this will work 

controller.Seek(TimeSpan.FromMilliseconds(5000), TimeSeekOrigin.BeginTime);

XAML : 

<Grid><Grid.RowDefinitions><RowDefinition Height="214*"/><RowDefinition Height="63*"/></Grid.RowDefinitions><Button x:Name="btnPause" Content="pause" HorizontalAlignment="Left" Margin="209,32,0,10" Grid.Row="1" VerticalAlignment="Top" Width="75" Click="btnPause_Click"/><Button x:Name="btnForward" Content="forward" HorizontalAlignment="Left" Margin="415,32,0,10" Grid.Row="1" VerticalAlignment="Top" Width="75" Click="btnForward_Click"/><Button x:Name="btnReverse" Content="reverse" HorizontalAlignment="Left" Margin="10,32,0,10" Grid.Row="1" VerticalAlignment="Top" Width="75"/><Button x:Name="btnPlay" Content="play" HorizontalAlignment="Left" Margin="289,32,0,10" Grid.Row="1" VerticalAlignment="Top" Width="75" Click="btnPlay_Click"/><Button x:Name="btnStop" Content="stop" HorizontalAlignment="Left" Margin="129,31,0,10" Grid.Row="1" VerticalAlignment="Top" Width="75" Click="btnStop_Click"/><MediaElement x:Name="meMovieScreen" HorizontalAlignment="Center" VerticalAlignment="Top" Width="451" LoadedBehavior="Manual" Margin="12,0,37,0" ScrubbingEnabled="True" MediaOpened="meMovieScreen_MediaOpened"/></Grid>

Code:

public partial class WinClockController : Window
    {
        public WinClockController()
        {
            InitializeComponent();
        }

        MediaClock clock;
        MediaTimeline timeline;
        ClockController controller;
        private bool boolIsPaused = false;

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            timeline = new MediaTimeline();
            timeline.Source = new Uri("wpfmedia/wildlife.wmv", UriKind.Relative);

            clock = (MediaClock)timeline.CreateClock(true);

            controller = clock.Controller;
            meMovieScreen.Clock = clock;
        }

        private void btnPlay_Click(object sender, RoutedEventArgs e)
        {
            if (boolIsPaused)
                controller.Resume();
            else
                controller.Begin();
        }

        private void btnPause_Click(object sender, RoutedEventArgs e)
        {
            controller.Pause();

            if (controller.Clock.IsPaused)
                boolIsPaused = true;
        }

        private void btnStop_Click(object sender, RoutedEventArgs e)
        {
            controller.Stop();
        }

        private void btnForward_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                /* won't work no matter what you do */
                controller.Seek(TimeSpan.FromMilliseconds(5000), TimeSeekOrigin.Duration);

                /* this works */
                //controller.Seek(TimeSpan.FromMilliseconds(5000), TimeSeekOrigin.BeginTime);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.InnerException.Message);
            }
        }

        private void meMovieScreen_MediaOpened(object sender, RoutedEventArgs e)
        {
            timeline.Duration = meMovieScreen.NaturalDuration;
        }
    }




Anjum S Khan Admin/Analyst Blog.TrackNifty.com




Viewing all articles
Browse latest Browse all 18858

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>