Questa documentazione è stata archiviata e non viene gestita.

Classe MediaTimeline

Aggiornamento: novembre 2007

Fornisce un oggetto Timeline per contenuti multimediali.

Spazio dei nomi:  System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS per XAML: http://schemas.microsoft.com/winfx/xaml/presentation

public class MediaTimeline : Timeline, 
	IUriContext
public class MediaTimeline extends Timeline implements IUriContext
public class MediaTimeline extends Timeline implements IUriContext

MediaTimeline è un oggetto Timeline che fornisce il controllo sullo stato di temporizzazione per gli elementi multimediali nello stesso modo in cui gli oggetti della sequenza temporale dell'animazione controllano le animazioni. Ad esempio, un oggetto MediaTimeline ha una Duration associata e le proprietà BeginTime possono essere utilizzate per specificare l'inizio e la durata di riproduzione del contenuto multimediale. Per ulteriori informazioni sulle sequenze temporali dell'animazione, vedere Cenni preliminari sull'animazione.

Esistono due modi per associare un oggetto Timeline a un oggetto MediaElement tramite MediaTimeline.

  1. All'interno di un oggetto Storyboard, quando un oggetto MediaTimeline viene destinato a un oggetto MediaElement, verrà creato un MediaClock e assegnato al lettore MediaElement associato. Per un esempio, vedere Procedura: controllare un MediaElement utilizzando uno storyboard.

  2. Creando in modo esplicito un oggetto MediaClock da un oggetto MediaTimeline e assegnandolo a un oggetto MediaElement.

Se l'oggetto Duration dell'oggetto MediaTimeline è impostato su Automatic (impostazione predefinita), la durata dell'oggetto MediaTimeline è la durata naturale dell'origine dei supporti. Per trovare la durata naturale dell'origine dei supporti a livello di codice, eseguire una query sulla proprietà NaturalDuration dell'oggetto MediaElement.

In questo esempio viene illustrato come controllare un oggetto MediaElement utilizzando un oggetto MediaTimeline in un oggetto Storyboard.

Quando si utilizza un oggetto MediaTimeline in un oggetto Storyboard per controllare i tempi di un oggetto MediaElement, la funzionalità è identica alla funzionalità di altri oggetti Timeline, ad esempio le animazioni. Ad esempio, un oggetto MediaTimeline utilizza proprietà Timeline come la proprietà BeginTime per specificare quando avviare un oggetto MediaElement (avvio della riproduzione di contenuti multimediali). Viene inoltre utilizzata la proprietà Duration per specificare per quanto tempo rimane attivo l'oggetto MediaElement (durata della riproduzione di contenuti multimediali). Per ulteriori informazioni sull'utilizzo degli oggetti Timeline con un oggetto Storyboard, vedere Cenni preliminari sugli storyboard.

In questo esempio viene illustrato come creare un semplice lettore multimediale che utilizza un oggetto MediaTimeline per controllare la riproduzione. Il lettore multimediale include i pulsanti per riprodurre, mettere in pausa, riprendere e arrestare l'esecuzione. Il lettore dispone anche di un controllo Slider che può essere utilizzato come indicatore di stato.

Nell'esempio riportato di seguito viene creata l'interfaccia utente per il lettore multimediale.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  x:Class="SDKSample.MediaTimelineExample" >

  <StackPanel Background="Black">

    <MediaElement Name="myMediaElement" MediaOpened="Element_MediaOpened"
     Width="260" Height="150" Stretch="Fill" />

    <!-- Button controls for play, pause, resume, and stop. -->
  <StackPanel HorizontalAlignment="Center" Width="260" Orientation="Horizontal">
    <Image Name="PlayButton" Source="images\UI_play.gif" Margin="30,10,10,10" />
    <Image Name="PauseButton" Source="images\UI_pause.gif" Margin="10" />
    <Image Name="ResumeButton" Source="images\UI_resume.gif" Margin="10" />
    <Image Name="StopButton" Source="images\UI_stop.gif" Margin="10" />
  </StackPanel>

  <!-- Ths slider shows the progress of the media. -->
  <Slider Name="timelineSlider" Margin="5" Width="250" HorizontalAlignment="Center"/>

  <StackPanel.Triggers>
    <EventTrigger RoutedEvent="Image.MouseDown" SourceName="PlayButton">
      <EventTrigger.Actions>
        <BeginStoryboard Name= "myBegin">

          <Storyboard SlipBehavior="Slip">

            <!-- The MediaTimeline controls the timing of the video and acts like other Timeline objects.  
                 For example, although the video clip (numbers.wmv) lasts longer, playback ends after six  
                 seconds because that is the duration of the MediaTimeline (Duration="0:0:6"). -->
            <MediaTimeline Source="media\numbers.wmv" Storyboard.TargetName="myMediaElement"  
             BeginTime="0:0:0" Duration="0:0:6" CurrentTimeInvalidated="MediaTimeChanged" />

          </Storyboard>
        </BeginStoryboard>
      </EventTrigger.Actions>
    </EventTrigger>

    <!-- These triggers impliment the functionality of the Pause, Resume
         and Stop buttons.-->
    <EventTrigger RoutedEvent="Image.MouseDown" SourceName="PauseButton">
      <EventTrigger.Actions>
        <PauseStoryboard BeginStoryboardName="myBegin" />
      </EventTrigger.Actions>
    </EventTrigger>
    <EventTrigger RoutedEvent="Image.MouseDown" SourceName="ResumeButton">
      <EventTrigger.Actions>
        <ResumeStoryboard BeginStoryboardName="myBegin" />
      </EventTrigger.Actions>
    </EventTrigger>
    <EventTrigger RoutedEvent="Image.MouseDown" SourceName="StopButton">
      <EventTrigger.Actions>
        <StopStoryboard BeginStoryboardName="myBegin" />
      </EventTrigger.Actions>
    </EventTrigger>
  </StackPanel.Triggers>

</StackPanel>
</Page>


Nell'esempio riportato di seguito viene creata la funzionalità per l'indicatore di stato.

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace SDKSample
{

    public partial class MediaTimelineExample : Page
	{
        // When the media opens, initialize the "Seek To" slider maximum value
        // to the total number of miliseconds in the length of the media clip.
        private void Element_MediaOpened(object sender, EventArgs e)
        {
            timelineSlider.Maximum = myMediaElement.NaturalDuration.TimeSpan.TotalMilliseconds;
        }

        private void MediaTimeChanged(object sender, EventArgs e)
        {
            timelineSlider.Value = myMediaElement.Position.TotalMilliseconds;
        }

    }
}


Per l'esempio completo, vedere Raccolta di supporti.

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Windows Vista

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0
Mostra: