Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fitur multimedia di Windows Presentation Foundation (WPF) memungkinkan Anda mengintegrasikan audio dan video ke dalam aplikasi Anda untuk meningkatkan pengalaman pengguna. Topik ini memperkenalkan fitur multimedia WPF.
Antarmuka Pemrograman Aplikasi (API) Media
Kelas MediaElement dan MediaPlayer digunakan untuk menyajikan konten audio atau video. Kelas-kelas ini dapat dikontrol secara interaktif atau berdasarkan jam. Kelas ini dapat digunakan pada kontrol Microsoft Windows Media Player 10 untuk pemutaran media. Kelas mana yang Anda gunakan, tergantung pada skenarionya.
Untuk informasi selengkapnya tentang menggambar objek dan konteks gambar, lihat Gambaran Umum Objek Gambar .
Nota
Saat mendistribusikan media dengan aplikasi, Anda tidak dapat menggunakan file media sebagai sumber daya proyek. Dalam file proyek Anda, Anda harus mengatur tipe media ke Content dan menetapkan CopyToOutputDirectory ke PreserveNewest atau Always.
Mode Pemutaran Media
Nota
Baik MediaElement maupun MediaPlayer memiliki anggota serupa. Tautan di bagian ini merujuk ke anggota kelas MediaElement. Kecuali disebutkan secara khusus, anggota yang ditautkan di kelas MediaElement juga dapat ditemukan di kelas MediaPlayer.
Untuk memahami pemutaran media di Windows Presentation Foundation (WPF), pemahaman tentang berbagai mode di mana media dapat diputar diperlukan. Baik MediaElement maupun MediaPlayer dapat digunakan dalam dua mode media yang berbeda, mode independen dan mode jam. Mode media ditentukan oleh properti Clock. Ketika Clock adalah null, objek media tersebut berada dalam mode independen. Ketika Clock non-null, objek media berada dalam mode jam. Secara default, objek media berada dalam mode independen.
Mode Mandiri
Dalam mode independen, konten media mendorong pemutaran media. Mode independen memungkinkan opsi berikut:
Uri media dapat ditentukan secara langsung.
Pemutaran media dapat dikontrol secara langsung.
Properti Position dan SpeedRatio media dapat dimodifikasi.
Media dimuat dengan mengatur properti MediaElement objek Source atau dengan memanggil metode MediaPlayer objek Open.
Untuk mengontrol pemutaran media dalam mode independen, metode kontrol objek media dapat digunakan. Metode kontrol yang tersedia adalah Play, Pause, Close, dan Stop. Untuk MediaElement, kontrol interaktif menggunakan metode ini hanya tersedia ketika LoadedBehavior diatur ke Manual. Metode ini tidak tersedia ketika objek media dalam mode jam.
Lihat Mengontrol MediaElement (Putar, Jeda, Berhenti, Volume, dan Kecepatan) untuk contoh mode independen.
Mode Jam
Dalam mode jam, MediaTimeline mengendalikan pemutaran media. Mode jam memiliki karakteristik berikut:
Secara tidak langsung, Uri Media diatur melalui MediaTimeline.
Pemutaran media dapat dikontrol oleh jam. Metode kontrol objek media tidak dapat digunakan.
Media dimuat dengan mengatur properti MediaTimeline objek Source, membuat jam dari garis waktu, dan menetapkan jam ke objek media. Media juga dimuat dengan cara ini ketika MediaTimeline di dalam Storyboard menargetkan MediaElement.
Untuk mengontrol pemutaran media dalam mode jam, metode kontrol ClockController harus digunakan. ClockController diperoleh dari properti ClockController dari MediaClock. Jika Anda mencoba menggunakan metode kontrol objek MediaElement atau MediaPlayer saat dalam mode jam, InvalidOperationException akan dilemparkan.
Lihat Gambaran Umum Animasi
Lihat Cara Mengontrol MediaElement Menggunakan Sebuah Storyboard untuk contoh mode jam.
Kelas MediaElement
Menambahkan media ke aplikasi semampu menambahkan kontrol MediaElement ke antarmuka pengguna (UI) aplikasi dan menyediakan Uri ke media yang ingin Anda sertakan. Semua jenis media yang didukung oleh Microsoft Windows Media Player 10 didukung di Windows Presentation Foundation (WPF). Contoh berikut menunjukkan penggunaan sederhana MediaElement dalam Extensible Application Markup Language (XAML).
<!-- This page shows a simple usage of MediaElement -->
<Page x:Class="MediaElementExample.SimpleUsage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SimpleUsage"
>
<StackPanel Margin="20">
<MediaElement Source="media/numbers-aud.wmv" />
</StackPanel>
</Page>
Dalam sampel ini, media diputar secara otomatis segera setelah dimuat. Setelah media selesai diputar, media ditutup dan semua sumber daya media dirilis (termasuk memori video). Ini adalah perilaku default objek MediaElement dan dikontrol oleh properti LoadedBehavior dan UnloadedBehavior.
Mengontrol MediaElement
Properti LoadedBehavior dan UnloadedBehavior mengontrol perilaku MediaElement saat IsLoaded adalah true atau false, masing-masing.
MediaState properti diatur untuk memengaruhi perilaku pemutaran media. Misalnya, default dari LoadedBehavior adalah Play dan default dari UnloadedBehavior adalah Close. Ini berarti bahwa segera setelah MediaElement dimuat dan pra-pendaftaran selesai, media mulai bermain. Setelah pemutaran selesai, media ditutup dan semua sumber daya media dilepaskan.
Properti LoadedBehavior dan UnloadedBehavior bukan satu-satunya cara untuk mengontrol pemutaran media. Dalam mode jam, jam dapat mengontrol MediaElement dan metode kontrol interaktif berfungsi ketika LoadedBehaviorManual. MediaElement mengelola kompetisi untuk pengendalian ini dengan mengevaluasi prioritas-prioritas berikut.
UnloadedBehavior. Ditempatkan ketika media dilepas. Ini memastikan bahwa semua sumber daya media dirilis secara default, bahkan ketika MediaClock dikaitkan dengan MediaElement.
MediaClock. Aktif bila media memiliki Clock. Jika media dibongkar, maka MediaClock akan berlaku selama UnloadedBehavior adalah Manual. Mode jam selalu menggantikan fungsi yang dimuat dari MediaElement.
LoadedBehavior. Diposisikan ketika media dimuat.
Metode kontrol interaktif. Pada tempatnya ketika LoadedBehavior adalah Manual. Metode kontrol yang tersedia adalah Play, Pause, Close, dan Stop.
Menampilkan MediaElement
Agar menampilkan MediaElement, harus memiliki konten untuk dirender, dan properti ActualWidth serta ActualHeight akan diatur ke nol hingga konten dimuat. Untuk konten audio saja, properti ini selalu nol. Untuk konten video, setelah peristiwa MediaOpened terjadi, ActualWidth dan ActualHeight akan melaporkan ukuran media yang dimuat. Ini berarti bahwa sampai media dimuat, MediaElement tidak akan mengambil ruang fisik apa pun di antarmuka pengguna (UI) kecuali properti Width atau Height diatur.
Mengatur properti Width dan Height akan menyebabkan media meregang untuk mengisi area yang disediakan untuk MediaElement. Untuk mempertahankan rasio aspek asli media, properti Width atau Height harus diatur tetapi tidak keduanya. Mengatur properti Width dan Height akan menyebabkan media hadir dalam ukuran elemen tetap yang mungkin tidak diinginkan.
Untuk menghindari elemen berukuran tetap, Windows Presentation Foundation (WPF) dapat menyiapkan media sebelumnya. Ini dilakukan dengan mengatur LoadedBehavior ke Play atau Pause. Dalam status Pause, media akan memutar pra-putar dan akan menyajikan frame pertama. Dalam keadaan Play, media akan melakukan pra-pemutaran dan mulai diputar.
Kelas MediaPlayer
Di mana karena kelas MediaElement adalah elemen kerangka kerja, kelas MediaPlayer dirancang untuk digunakan dalam objek Drawing. Objek gambar digunakan ketika Anda dapat mengorbankan fitur tingkat kerangka kerja untuk mendapatkan manfaat performa atau ketika Anda membutuhkan fitur Freezable. MediaPlayer memungkinkan Anda memanfaatkan fitur-fitur ini sambil menyediakan konten media di aplikasi Anda. Seperti MediaElement, MediaPlayer dapat digunakan dalam mode independen atau jam tetapi tidak memiliki status objek MediaElement yang dibongkar dan dimuat. Ini mengurangi kompleksitas kontrol pemutaran MediaPlayer.
Mengontrol MediaPlayer
Karena MediaPlayer tanpa status, hanya ada dua cara untuk mengontrol pemutaran media.
Metode kontrol interaktif. Ketika dalam mode independen (properti
nullClock), aktif.MediaClock. Aktif bila media memiliki Clock.
Menampilkan PemutarMedia
Secara teknis, MediaPlayer tidak dapat ditampilkan karena tidak memiliki representasi fisik. Namun, ini dapat digunakan untuk menyajikan media dalam Drawing menggunakan kelas VideoDrawing. Contoh berikut menunjukkan penggunaan VideoDrawing untuk menampilkan media.
//
// 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();
Lihat Gambaran Umum Objek Gambar untuk informasi selengkapnya tentang objek Drawing.
Lihat juga
.NET Desktop feedback