Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Windows Presentation Foundation (WPF) multimédiás funkcióival hang- és videotartalmakat integrálhat az alkalmazásokba a felhasználói élmény fokozása érdekében. Ez a témakör a WPF multimédiás funkcióit ismerteti.
Média Alkalmazásprogramozási Felület
Az MediaElement és MediaPlayer osztályok az audio- vagy videotartalmak bemutatására szolgálnak. Ezek az osztályok interaktívan vagy egy órával vezérelhetők. Ezek az osztályok a Microsoft Windows Media Player 10 vezérlőn használhatók a médialejátszáshoz. A használt osztály a forgatókönyvtől függ.
MediaElement UIElement az elrendezés által támogatott, és számos vezérlő tartalmaként használható. Használható az Extensible Application Markup Language (XAML) és a kód használatával is. MediaPlayer viszont Drawing objektumokra van tervezve, és nem rendelkezik elrendezés támogatással. A MediaPlayer használatával betöltött médiatartalmak csak VideoDrawing vagy közvetlen interakcióval a DrawingContext eszközzel mutathatók be. MediaPlayer XAML-ben nem használható.
A rajzobjektumokról és a rajzkörnyezetről további információt a Rajzobjektumok áttekintése című témakörben talál.
Megjegyzés:
Ha a médiatartalmat terjeszti az alkalmazással, nem használhatja a médiafájlt projekt forrásként. A projektfájlban ehelyett a médiatípust Content kell beállítania, és CopyToOutputDirectoryPreserveNewest vagy Alwaysértékre kell állítania.
Médialejátszási módok
Megjegyzés:
Mindkettőhöz MediaElementMediaPlayer hasonló tagok tartoznak. Az ebben a szakaszban található hivatkozások az MediaElement osztálytagokra vonatkoznak. Ha nincs külön megjegyezve, az MediaElement osztályhoz társított tagok az osztályban MediaPlayer is megtalálhatók.
A Windows Presentation Foundation (WPF) médialejátszásának megértéséhez ismernie kell a médialejátszás különböző módjait. Mind a MediaElement és a MediaPlayer használható két különböző médiamódban: független módban és óramódban. A médiamódot a Clock tulajdonság határozza meg. Ha a Clocknull, a médiaelem független módban van. Ha a Clock médiaobjektum nem null értékű, a médiaobjektum óra módban van. Alapértelmezés szerint a médiaobjektumok független módban vannak.
Független üzemmód
Független módban a médiatartalom a médialejátszást vezérli. A független mód a következő beállításokat teszi lehetővé:
Az adathordozók közvetlenül megadhatók Uri.
A médialejátszás közvetlenül szabályozható.
A média Position és SpeedRatio tulajdonságai módosíthatók.
Az adathordozó betöltése az MediaElement objektum tulajdonságának Source beállításával vagy az MediaPlayer objektum metódusának meghívásával Open történik.
A médialejátszás független módban való szabályozásához a médiaobjektum vezérlő módszerei használhatók. Az elérhető vezérlési módszerek a következők: Play, PauseCloseés Stop. Csak akkor érhető el interaktív vezérlés a(z) MediaElement metódusok használatával, ha a(z) LoadedBehavior be van állítva Manual értékre. Ezek a metódusok nem érhetők el, ha a médiaobjektum óra módban van.
A független mód példáját a MediaElement (lejátszás, szüneteltetés, leállítás, hangerő és sebesség) szabályozása című témakörben tekintheti meg.
Óra mód
Óra funkcióban a médialejátszást MediaTimeline vezérli. Az óra üzemmód a következő jellemzőkkel rendelkezik:
A média indirekt módon van beállítva egy Uri által.
A médialejátszást az óra szabályozhatja. A médiaobjektum vezérlőmetódusai nem használhatók.
A média betöltése egy MediaTimeline objektum Source tulajdonságának beállításával, az óra idővonalból való létrehozásával, és az óra hozzárendelésével a médiaobjektumhoz történik. A média is így töltődik be, amikor egy MediaTimeline a Storyboard-en belül egy MediaElement-t céloz meg.
A médialejátszás óra módban történő szabályozásához a ClockController vezérlőmetszeteket kell használni. A ClockController a ClockControllerMediaClock tulajdonságából származik. Ha óra módban egy vagy MediaElement egy MediaPlayer objektum vezérlőmetódusait próbálja használni, a rendszer egy InvalidOperationException műveletet hajt végre.
Az órákról és az ütemtervekről további információt az Animáció áttekintése című témakörben talál.
A MediaElement vezérlése storyboard használatával című témakörben talál példát az óra üzemmódra.
MediaElement osztály
A médiatartalmak hozzáadása egy alkalmazáshoz olyan egyszerű, mint egy MediaElement vezérlő hozzáadása az alkalmazás felhasználói felületéhez, és egy Uri biztosítása az Ön által felvenni kívánt médiához. A Microsoft Windows Media Player 10 által támogatott összes médiatípus támogatott a Windows Presentation Foundationben (WPF). Az alábbi példa a MediaElement bővíthető alkalmazásjelölő nyelv (XAML) egyszerű használatát mutatja be.
<!-- 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>
Ebben a mintában a média lejátszása automatikusan megtörténik, amint betöltődik. Miután a média lejátszása befejeződött, a média lezárásra kerül, és az összes médiaerőforrás felszabadul (beleértve a videomemóriát is). Ez az objektum alapértelmezett viselkedése, amit a MediaElement és LoadedBehavior tulajdonságok vezérelnek.
MediaElement vezérlése
Az LoadedBehavior és UnloadedBehavior tulajdonságok a MediaElement viselkedését szabályozzák, amikor a IsLoadedtrue vagy false. A MediaState tulajdonságok úgy vannak beállítva, hogy befolyásolják a médialejátszás viselkedését. Például az alapértelmezett LoadedBehavior érték Play, és az alapértelmezett UnloadedBehavior érték Close. Ez azt jelenti, hogy amint a MediaElement betöltődött és a preroll befejeződött, a média elkezd lejátszani. Miután a lejátszás befejeződött, a média le lesz zárva, és az összes médiaerőforrás ki lesz adva.
A LoadedBehavior és UnloadedBehavior tulajdonságok használata nem az egyetlen módja a médialejátszás szabályozásának. Óra módban az óra vezérelheti a MediaElement, és az interaktív vezérlési módszerek veszik át az irányítást, amikor a LoadedBehaviorManual van. MediaElement ezt a versenyt az irányításért a következő prioritások értékelésével kezeli.
UnloadedBehavior. A helyén, amikor az adathordozó eltávolításra kerül. Ez biztosítja, hogy az összes médiaerőforrás alapértelmezés szerint felszabaduljon, még akkor is, ha a MediaClock társítva van a MediaElement-hez.
MediaClock. Amikor a média rendelkezik egy Clock-vel a helyén. Ha a média ki van ürítve, a MediaClock mindaddig érvényben marad, amíg a UnloadedBehaviorManual. Az óraüzemmód mindig felülbírálja a betöltött viselkedést.MediaElement
LoadedBehavior. Az adathordozó betöltésekor a helyén.
Interaktív vezérlési módszerek. A helyén, amikor LoadedBehavior van Manual. Az elérhető vezérlési módszerek a következők: Play, PauseCloseés Stop.
MediaElement megjelenítése
A MediaElement megjelenítéséhez tartalomra van szükség, amit renderelni lehet, és a MediaElementActualHeight és tulajdonságait nullára állítják, amíg a tartalom be nem töltődik. Csak hangtartalmak esetén ezek a tulajdonságok mindig nullak. Videotartalmak esetén az MediaOpened eseményt követően a ActualWidthActualHeight betöltött adathordozó méretét jelenti. Ez azt jelenti, hogy amíg a média be nem töltődik, a MediaElement nem foglal fizikai helyet a felhasználói felületen (UI), kivéve, ha a Width vagy Height tulajdonságok be vannak állítva.
Mind a Width és Height tulajdonságok beállítása okozza, hogy a médiatartalom megnyúlik, és kitölti a MediaElement számára biztosított területet. A média eredeti méretarányának megőrzése érdekében vagy a WidthHeight tulajdonságot kell beállítani, de mindkettőt nem. Ha a Width és Height tulajdonságokat beállítja, a média rögzített elemméretben jelenik meg, ami nem feltétlenül kívánatos.
Annak érdekében, hogy ne legyen rögzített méretű elem, a Windows Presentation Foundation (WPF) előre lejátszhatja a médiatartalmat. Ezt úgy teheti meg, hogy a beállítást a következőre állítja LoadedBehavior : vagy PlayPause. Pause állapotban a média elő lesz játszva, és megjeleníti az első képkockát. Egy Play állapotban a média előzetesen betöltődik, és megkezdi a lejátszást.
MediaPlayer-osztály
Ahol az MediaElement osztály egy keretrendszerelem, az MediaPlayer osztály objektumokban Drawing való használatra lett tervezve. A rajzobjektumok akkor használhatók, ha a keretrendszerszintű funkciókat feláldozva teljesítménybeli előnyöket érhet el, vagy ha funkciókra van szüksége Freezable . MediaPlayer lehetővé teszi, hogy kihasználja ezeket a funkciókat, miközben médiatartalmat biztosít az alkalmazásokban. Például MediaElementfüggetlen vagy óra módban is használható, MediaPlayer de nem rendelkezik az MediaElement objektum kiürített és betöltött állapotával. Ez csökkenti a lejátszásvezérlés összetettségét.MediaPlayer
A MediaPlayer vezérlése
Mivel MediaPlayer állapot nélküli, a médialejátszást csak két módon lehet szabályozni.
Interaktív vezérlési módszerek. Független üzemmódban, amennyiben a (
nullClock tulajdonság) engedélyezi.MediaClock. Amikor a média rendelkezik egy Clock-vel a helyén.
MediaPlayer megjelenítése
Technikailag a MediaPlayer nem jeleníthető meg, mivel nincs fizikai ábrázolása. Médiumok is megjeleníthetők Drawing-ben az VideoDrawing osztály használatával. Az alábbi példa bemutatja a média megjelenítésére való VideoDrawing használatát.
//
// 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();
Az objektumokról további információt a Drawing témakörben talál.
Lásd még
.NET Desktop feedback