Videókeretek kezelése prezentációkban .NET-ben
Bevezetés
Egy megfelelően elhelyezett videó a prezentációban meggyőzőbbé teszi az üzenetedet, és növeli a közönség elköteleződését.
A PowerPoint két módon teszi lehetővé a videók hozzáadását egy diára a prezentációban:
- Helyi videó hozzáadása vagy beágyazása (a gépeden tárolva)
- Online videó hozzáadása (webes forrásból, például a YouTube-ról).
Az Aspose.Slides lehetővé teszi, hogy videókat (videoobjektumokat) adjunk hozzá egy prezentációhoz, a IVideo interfészt, a IVideoFrame interfészt és egyéb releváns típusokat biztosít.
Beágyazott videókeret létrehozása
Ha a diára felvenni kívánt videófájl helyileg van tárolva, létrehozhatsz egy videókeretet a videó prezentációba ágyazásához.
- Hozz létre egy példányt a Presentation osztályból.
- Szerezd meg egy dia referenciaindexét.
- Adj hozzá egy IVideo objektumot, és add meg a videófájl útvonalát a videó prezentációba ágyazásához.
- Adj hozzá egy IVideoFrame objektumot a videó keret létrehozásához.
- Mentsd el a módosított prezentációt.
Ez a C# kód megmutatja, hogyan adhatunk hozzá egy helyileg tárolt videót a prezentációhoz:
// Példányosítja a Presentation osztályt
using (Presentation pres = new Presentation("pres.pptx"))
{
// Betölti a videót
using (FileStream fileStream = new FileStream("Wildlife.mp4", FileMode.Open, FileAccess.Read))
{
IVideo video = pres.Videos.AddVideo(fileStream, LoadingStreamBehavior.KeepLocked);
// Lekéri az első diát és hozzáad egy videókeretet
pres.Slides[0].Shapes.AddVideoFrame(10, 10, 150, 250, video);
// Elmenti a prezentációt a lemezre
pres.Save("pres-with-video.pptx", SaveFormat.Pptx);
}
}
Alternatívaként közvetlenül a videó fájlútvonalát átadva is hozzáadhatsz egy videót a AddVideoFrame metódusnak:
using (Presentation pres = new Presentation())
{
ISlide sld = pres.Slides[0];
IVideoFrame vf = sld.Shapes.AddVideoFrame(50, 150, 300, 150, "video1.avi");
}
Videókeret létrehozása webes forrásból származó videóval
Az újabb Microsoft PowerPoint verziók támogatják az online videókat a prezentációkban. Ha a felhasználandó videó online érhető el (például a YouTube-on), hozzáadhatod a prezentációhoz a webes hivatkozáson keresztül.
- Hozz létre egy példányt a Presentation osztályból.
- Szerezd meg egy dia referenciaindexét.
- Adj hozzá egy IVideo objektumot, és adja meg a videó linkjét.
- Állíts be egy miniatűrt a videókerethez.
- Mentsd el a prezentációt.
Ez a C# kód megmutatja, hogyan adhatunk hozzá egy webes videót egy PowerPoint diához:
public static void Run()
{
// Példányosít egy Presentation objektumot, amely egy prezentációs fájlt képvisel
using (Presentation pres = new Presentation())
{
AddVideoFromYouTube(pres, "Tj75Arhq5ho");
pres.Save("AddVideoFrameFromWebSource_out.pptx", SaveFormat.Pptx);
}
}
private static void AddVideoFromYouTube(Presentation pres, string videoId)
{
// Videókeretet ad hozzá
IVideoFrame videoFrame = pres.Slides[0].Shapes.AddVideoFrame(10, 10, 427, 240, "https://www.youtube.com/embed/" + videoId);
videoFrame.PlayMode = VideoPlayModePreset.Auto;
// Betölti a miniatűrt
using (WebClient client = new WebClient())
{
string thumbnailUri = "http://img.youtube.com/vi/" + videoId + "/hqdefault.jpg";
videoFrame.PictureFormat.Picture.Image = pres.Images.AddImage(client.DownloadData(thumbnailUri));
}
}
Videókeret levágása
Az Aspose.Slides lehetővé teszi, hogy a videó lejátszott részét a IVideoFrame.TrimFromStart és a IVideoFrame.TrimFromEnd értékek beállításával szabályozd. Mindkét érték ezredmásodpercben van megadva, és meghatározza, mennyi időt hagyunk ki a videó elejéről illetve végéről. Ezek a beállítások a videó lejátszási beállításait módosítják a prezentációban; a beágyazott videó bináris adatait nem vágják vagy módosítják.
Trim beállítások beállítása
Egy videókeret létrehozásához és a trim beállítások megadásához:
- Hozz létre egy példányt a Presentation osztályból.
- Adj hozzá egy IVideo objektumot a prezentációhoz.
- Adj hozzá egy IVideoFrame objektumot egy diára.
- Állítsd be a trim-from-start és trim-from-end értékeket a IVideoFrame.TrimFromStart és a IVideoFrame.TrimFromEnd segítségével.
- Mentsd el a módosított prezentációt.
A következő kódrészlet kilépteti az első 2,5 másodpercet és az utolsó másodpercet egy beágyazott videó lejátszása közben:
using var presentation = new Presentation();
var videoData = File.ReadAllBytes("video.mp4");
var video = presentation.Videos.AddVideo(videoData);
var slide = presentation.Slides[0];
var videoFrame = slide.Shapes.AddVideoFrame(50, 50, 640, 360, video);
videoFrame.TrimFromStart = 2500f;
videoFrame.TrimFromEnd = 1000f;
presentation.Save("video_with_trim.pptx", SaveFormat.Pptx);
Trim beállítások lekérdezése
A meglévő trim beállítások megtekintéséhez tölts be egy prezentációt, keresd meg az első dián az IVideoFrame objektumot, és olvasd ki az értékeket a IVideoFrame.TrimFromStart és a IVideoFrame.TrimFromEnd segítségével.
A következő kódrészlet megtalálja az első videókeretet az első dián, és ezredmásodpercben jelzi a trim beállításait:
using var presentation = new Presentation("video_with_trim.pptx");
var slide = presentation.Slides[0];
foreach (var shape in slide.Shapes)
{
if (shape is IVideoFrame videoFrame)
{
var trimFromStart = videoFrame.TrimFromStart;
var trimFromEnd = videoFrame.TrimFromEnd;
Console.WriteLine($"Trim from start: {trimFromStart} ms");
Console.WriteLine($"Trim from end: {trimFromEnd} ms");
break;
}
}
Videó feliratok kezelése
Az Aspose.Slides lehetővé teszi, hogy zárt feliratokat kezelj videókeretekhez PowerPoint prezentációkban. A feliratok WebVTT formátumban tárolódnak, és a IVideoFrame.CaptionTracks tulajdonságon keresztül érhetők el.
Feliratok hozzáadása videókerethez
Feliratok hozzáadásához egy videókerethez:
- Hozz létre egy példányt a Presentation osztályból.
- Adj hozzá egy videót a prezentációhoz.
- Adj hozzá egy IVideoFrame objektumot egy diára.
- Használd a CaptionTracks gyűjteményt egy WebVTT feliratsptrack hozzáadásához.
- Mentsd el a módosított prezentációt.
A következő kód megmutatja, hogyan adhatunk feliratokat egy videókerethez:
using (Presentation presentation = new Presentation())
{
byte[] videoData = File.ReadAllBytes("video.mp4");
IVideo video = presentation.Videos.AddVideo(videoData);
ISlide slide = presentation.Slides[0];
IVideoFrame videoFrame = slide.Shapes.AddVideoFrame(0, 0, 100, 100, video);
// Új feliratsptrack hozzáadása WebVTT fájlból.
videoFrame.CaptionTracks.Add("English", "track.vtt");
presentation.Save("video_with_captions.pptx", SaveFormat.Pptx);
}
Az ICaptionsCollection interfész további túlterhelést is biztosít, amely lehetővé teszi, hogy a feliratokat streamből adjuk hozzá.
Feliratok kinyerése videókeretből
Feliratok kinyeréséhez egy videókeretből:
- Töltsd be azt a prezentációt, amely tartalmazza a videót.
- Találd meg a cél IVideoFrame objektumot.
- Iterálj végig a CaptionTracks gyűjteményen.
- Mentsd el minden feliratsptracket egy
.vttfájlba.
A következő kód megmutatja, hogyan nyerhetőek ki a feliratok egy videókeretből:
using (Presentation presentation = new Presentation("video_with_captions.pptx"))
{
ISlide slide = presentation.Slides[0];
foreach (IShape shape in slide.Shapes)
{
if (shape is IVideoFrame videoFrame)
{
foreach (ICaptions captionTrack in videoFrame.CaptionTracks)
{
// Mentse a feliratsptrack-et WebVTT fájlba.
string filePath = $"{captionTrack.CaptionId}.vtt";
File.WriteAllBytes(filePath, captionTrack.BinaryData);
}
}
}
}
Minden ICaptions objektum a felirat azonosítóját, címkéjét, bináris adatát és a felirat szövegét UTF‑8 stringként szolgáltatja.
Feliratok eltávolítása videókeretből
Feliratok eltávolításához egy videókeretből:
- Töltsd be azt a prezentációt, amely tartalmazza a videót.
- Szerezd meg a cél IVideoFrame objektumot.
- Távolítsd el a feliratsptrackeket a CaptionTracks gyűjteményből.
- Mentsd el a módosított prezentációt.
A következő kód megmutatja, hogyan távolíthatók el az összes felirat egy videókeretből:
using (Presentation presentation = new Presentation("video_with_captions.pptx"))
{
ISlide slide = presentation.Slides[0];
IVideoFrame videoFrame = slide.Shapes[0] as IVideoFrame;
// Eltávolítja az összes feliratot a videókeretről.
videoFrame.CaptionTracks.Clear();
presentation.Save("video_without_captions.pptx", SaveFormat.Pptx);
}
Ha csak egy feliratsptracket szeretnél eltávolítani, használd a Remove vagy a RemoveAt metódust a Clear helyett.
Videó kinyerése diáról
A videók diákhoz való hozzáadása mellett az Aspose.Slides lehetővé teszi a prezentációkba beágyazott videók kinyerését is.
- Hozz létre egy példányt a Presentation osztályból a videót tartalmazó prezentáció betöltéséhez.
- Iterálj végig az összes ISlide objektumon.
- Iterálj végig az összes IShape objektumon, hogy megtaláld a VideoFrame elemet.
- Mentsd el a videót a lemezre.
Ez a C# kód megmutatja, hogyan nyerhető ki a videó egy prezentációs diáról:
// Példányosít egy Presentation objektumot, amely egy prezentációs fájlt képvisel
Presentation presentation = new Presentation("Video.pptx");
// Végigiterál a diákon
foreach (ISlide slide in presentation.Slides)
{
// Végigiterál az alakzatokon
foreach (IShape shape in presentation.Slides[0].Shapes)
{
// Elmenti a videót a lemezre, amint megtalálja a videót tartalmazó VideoFrame-et
if (shape is VideoFrame)
{
IVideoFrame vf = shape as IVideoFrame;
String type = vf.EmbeddedVideo.ContentType;
int ss = type.LastIndexOf('/');
type = type.Remove(0, type.LastIndexOf('/') + 1);
Byte[] buffer = vf.EmbeddedVideo.BinaryData;
using (FileStream stream = new FileStream("NewVideo_out." + type, FileMode.Create, FileAccess.Write, FileShare.Read))
{
stream.Write(buffer, 0, buffer.Length);
}
}
}
}
GYIK
Mely videólejátszási paraméterek módosíthatók egy VideoFrame‑ben?
A playback mode (automatikus vagy kattintásra) és a looping beállítható a VideoFrame objektum tulajdonságain keresztül.
A videó hozzáadása befolyásolja a PPTX fájlméretet?
Igen. Ha helyi videót ágyazol be, a bináris adat a dokumentumba kerül, így a prezentáció mérete a fájlmérettel arányosan nő. Online videó esetén csak egy hivatkozás és egy miniatűr kerül beágyazásra, így a méretnövekedés kisebb.
Lecserélhetem a videót egy meglévő VideoFrame‑ben anélkül, hogy megváltoztatnám a pozícióját és méretét?
Igen. A video content cserélhető a kereten belül, miközben a forma geometriai adatai változatlanok maradnak; ez gyakori eljárás a meglévő elrendezés médiatartalmának frissítésére.
Megállapítható-e egy beágyazott videó tartalom típusa (MIME)?
Igen. Egy beágyazott videó rendelkezik content type információval, amely leolvasható és felhasználható, például a lemezre mentéskor.