Video marker : Video « UI Controls « Silverlight






Video marker

Video marker
   

<UserControl x:Class='SilverlightApplication3.MainPage'
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
    xmlns:d='http://schemas.microsoft.com/expression/blend/2008' 
    xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006' 
    mc:Ignorable='d' 
    d:DesignWidth='640' 
    d:DesignHeight='480'>
  <StackPanel Margin="10">
    <MediaElement Margin="10,0" x:Name="media" Source="test.wmv" MarkerReached="media_MarkerReached" MediaOpened="media_MediaOpened"></MediaElement>
    <TextBlock Visibility="Collapsed" Margin="10" x:Name="lblMarker"></TextBlock>
    <TextBlock Margin="10">Markers:</TextBlock>
    <ListBox Margin="10,0" x:Name="lstMarkers" SelectionChanged="lstMarkers_SelectionChanged"></ListBox>
  </StackPanel>
</UserControl>
//File: Page.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SilverlightApplication3
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void media_MarkerReached(object sender, TimelineMarkerRoutedEventArgs e)
        {
            lblMarker.Text = e.Marker.Text + " at " + e.Marker.Time.TotalSeconds + " seconds";
        }

        private void media_MediaOpened(object sender, RoutedEventArgs e)
        {
            lstMarkers.DisplayMemberPath = "DisplayText";            
            foreach (TimelineMarker marker in media.Markers)
            {
                lstMarkers.Items.Add(new MarkerInfo(marker));
            }            
        }

        private void lstMarkers_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            MarkerInfo markerInfo = (MarkerInfo)lstMarkers.SelectedItem;      
            media.Position = markerInfo.Marker.Time;
            media.Play();
        }
    }

    public class MarkerInfo
    {
        public TimelineMarker Marker
        {
            get;
            set;
        }

        public string DisplayText
        {
            get
            {
                return Marker.Text + " (" + Marker.Time.Minutes + ":" + Marker.Time.Seconds + ":" + 
                    Marker.Time.Milliseconds + ")";
            }
        }

        public MarkerInfo(TimelineMarker marker)
        {
            Marker = marker;
        }
    }
}

   
    
    
  








Related examples in the same category

1.Playing VideoPlaying Video
2.Video Brush
3.Video reflection