Videókeretek kezelése prezentációkban .NET-ben

Bevezetés

Egy megfelelően elhelyezett videó egy prezentációban meggyőzőbbé teheti az üzenetét, és növelheti a közönségével való elköteleződés szintjét.

A PowerPoint két módon teszi lehetővé, hogy videókat adjon hozzá egy diára a prezentációban:

  • Helyi videó hozzáadása vagy beágyazása (a gépen tárolt)
  • Online videó hozzáadása (web forrásból, például YouTube).

Az Aspose.Slides lehetővé teszi, hogy videókat (videoobjektumokat) adjon hozzá egy prezentációhoz, és biztosítja az IVideo interfészt, az IVideoFrame interfészt, valamint egyéb releváns típusokat.

Beágyazott videókeret létrehozása

Ha a diára kívánt videófájl helyileg van tárolva, létrehozhat egy videókeretet a videó beágyazásához a prezentációba.

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezze meg a dia referenciajét az indexe alapján.
  3. Adjon hozzá egy IVideo objektumot, és adja meg a videófájl elérési útját a videó beágyazásához a prezentációval.
  4. Adjon hozzá egy IVideoFrame objektumot a videó keret létrehozásához.
  5. Mentse el a módosított prezentációt.

Ez a C# kód bemutatja, hogyan adjon hozzá lokálisan tárolt videót egy prezentációhoz:

// Létrehozza 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 fájl útvonalát adhatja á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

A Microsoft PowerPoint 2013 és újabb támogatja a YouTube videókat a prezentációkban. Ha a felhasználandó videó online érhető el (például YouTube-on), a webes hivatkozásával adhatja hozzá a prezentációhoz.

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezze meg a dia referenciajét az indexe alapján.
  3. Adjon hozzá egy IVideo objektumot, és adja meg a videó hivatkozását.
  4. Állítson be egy bélyegképet a videókerethez.
  5. Mentse el a prezentációt.

Ez a C# kód bemutatja, hogyan adjon hozzá egy webes videót egy PowerPoint diára:

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 bélyegképet
    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ó feliratok kezelése

Az Aspose.Slides lehetővé teszi a zárt feliratok kezelését a PowerPoint prezentációk videókereteiben. 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

A feliratok videókerethez való hozzáadásához:

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Adjon hozzá egy videót a prezentációhoz.
  3. Adjon hozzá egy IVideoFrame objektumot egy diára.
  4. Használja a CaptionTracks gyűjteményt WebVTT feliratpálya hozzáadásához.
  5. Mentse el a módosított prezentációt.

Az alábbi kód megmutatja, hogyan adjon 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 feliratpályát ad hozzá egy WebVTT fájlból.
    presentation.Save("video_with_captions.pptx", SaveFormat.Pptx);
}

Az ICaptionsCollection interfész egy olyan túlterhelést is biztosít, amely lehetővé teszi feliratok hozzáadását egy adatfolyamból.

Feliratok kinyerése videókeretből

A feliratok videókeretből való kinyeréséhez:

  1. Töltse be a videót tartalmazó prezentációt.
  2. Keresse meg a célzott IVideoFrame objektumot.
  3. Iteráljon végig a CaptionTracks gyűjteményen.
  4. Mentse el minden feliratpályát egy .vtt fájlba.

Az alábbi kód megmutatja, hogyan kinyerje a feliratokat 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)
            {
                // A feliratpályát egy WebVTT fájlba menti.
                string filePath = $"{captionTrack.CaptionId}.vtt";
                File.WriteAllBytes(filePath, captionTrack.BinaryData);
            }
        }
    }
}

Minden ICaptions objektum a felirat azonosítót, címkét, bináris adatot és a felirat szöveget UTF‑8 stringként teszi elérhetővé.

Feliratok eltávolítása videókeretből

A feliratok videókeretből való eltávolításához:

  1. Töltse be a videót tartalmazó prezentációt.
  2. Szerezze meg a célzott IVideoFrame objektumot.
  3. Távolítsa el a feliratpályákat a CaptionTracks gyűjteményből.
  4. Mentse el a módosított prezentációt.

Az alábbi kód megmutatja, hogyan távolítsa el az összes feliratot 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ókeretből.
    videoFrame.CaptionTracks.Clear();

    presentation.Save("video_without_captions.pptx", SaveFormat.Pptx);
}

Ha csak egy feliratpályát kell eltávolítania, használja a Remove vagy a RemoveAt metódust a Clear helyett.

Videó kinyerése diábó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.

  1. Hozzon létre egy Presentation példányt a videót tartalmazó prezentáció betöltéséhez.
  2. Iteráljon végig az összes ISlide objektumon.
  3. Iteráljon végig az összes IShape objektumon, hogy megtalálja a VideoFrame elemet.
  4. Mentse el a videót a lemezre.

Ez a C# kód bemutatja, hogyan nyerje ki a videót egy prezentációs diához:

// 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)
    {
        // Mentse a videót lemezre, amint megtalál egy 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);
            }
        }
    }
}

FAQ

Mely videolejátszási paraméterek módosíthatók egy VideoFrame esetén?

A playback mode (automatikus vagy kattintásra) és a looping vezérelhető a VideoFrame objektum tulajdonságain keresztül.

A videó hozzáadása befolyásolja a PPTX fájlméretet?

Igen. Ha helyi videót ágyaz be, a bináris adat a dokumentumba kerül, így a prezentáció mérete arányosan nő a fájlmérettel. Online videó esetén egy hivatkozás és egy bélyegkép kerül beágyazásra, ezért a méretnövekedés kisebb.

Lecserélhetem a videót egy már létező VideoFrame-ben anélkül, hogy megváltoztatnám a pozícióját és méretét?

Igen. A video content cseréjével a keretben megőrizhető a forma geometriai adata; ez gyakori megoldás a már meglévő elrendezés médiaanyagainak frissítésére.

Meghatározható-e a beágyazott videó tartalomtípusa (MIME)?

Igen. Egy beágyazott videó rendelkezik content type információval, amely olvasható és felhasználható például lemezre mentéskor.