Condividi tramite


Procedura: Riprodurre contenuti multimediali con VideoDrawing

Per riprodurre un file audio o video, usare un VideoDrawing e un MediaPlayer. Esistono due modi per caricare e riprodurre elementi multimediali. Il primo consiste nell'usare un MediaPlayer e un VideoDrawing da soli e il secondo consiste nel creare un MediaTimeline personalizzato da usare con i MediaPlayer e VideoDrawing.

Nota

Quando si distribuiscono supporti con l'applicazione, non è possibile usare un file multimediale come risorsa di progetto, come si farebbe con un'immagine. Nel file di progetto è invece necessario impostare il tipo di supporto su Content e impostare CopyToOutputDirectory su PreserveNewest o Always.

Usare un VideoDrawing e un MediaPlayer

L'esempio seguente usa un VideoDrawing e un MediaPlayer per riprodurre un file video una sola volta.

//
// Create a VideoDrawing.
//
MediaPlayer player = new MediaPlayer();

player.Open(new Uri(@"sampleMedia\xbox.wmv", UriKind.Relative));

VideoDrawing aVideoDrawing = new VideoDrawing();

aVideoDrawing.Rect = new Rect(0, 0, 100, 100);

aVideoDrawing.Player = player;

// Play the video once.
player.Play();

Per ottenere un controllo temporale aggiuntivo sui media, usare un MediaTimeline con gli oggetti MediaPlayer e VideoDrawing. Il MediaTimeline consente di specificare se il video deve essere ripetuto.

Usare un MediaTimeline

Nell'esempio seguente viene utilizzata una MediaTimeline con gli oggetti MediaPlayer e VideoDrawing per riprodurre ripetutamente un video.

//
// Create a VideoDrawing that repeats.
//

// Create a MediaTimeline.
MediaTimeline mTimeline =
    new MediaTimeline(new Uri(@"sampleMedia\xbox.wmv", UriKind.Relative));

// Set the timeline to repeat.
mTimeline.RepeatBehavior = RepeatBehavior.Forever;

// Create a clock from the MediaTimeline.
MediaClock mClock = mTimeline.CreateClock();

MediaPlayer repeatingVideoDrawingPlayer = new MediaPlayer();
repeatingVideoDrawingPlayer.Clock = mClock;

VideoDrawing repeatingVideoDrawing = new VideoDrawing();
repeatingVideoDrawing.Rect = new Rect(150, 0, 100, 100);
repeatingVideoDrawing.Player = repeatingVideoDrawingPlayer;

Si noti che, quando si usa un MediaTimeline, si usa la ClockController interattiva restituita dalla proprietà Controller del MediaClock per controllare la riproduzione multimediale anziché i metodi interattivi di MediaPlayer.

Vedere anche