Videokeretek kezelése Androidos bemutatókban
Bevezetés
Egy megfelelően elhelyezett videó a bemutatóban hatásosabbá teheti üzenetét, és növelheti a közönség elkötelezettségét.
A PowerPoint lehetővé teszi, hogy videókat adjon a diára a bemutatóban két módon:
- Helyi videó hozzáadása vagy beágyazása (a gépén tárolt)
- Online videó hozzáadása (webes forrásból, például a YouTube-ról).
Ahhoz, hogy videókat (videóobjektumokat) adjon a bemutatóhoz, az Aspose.Slides a IVideo interfészt, a IVideoFrame interfészt és egyéb releváns típusokat biztosít.
Beágyazott videokeret létrehozása
Ha a diára felvenni kívánt videófájl helyileg van tárolva, létrehozhat egy videokeretet a videó bemutatóba ágyazásához.
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a dia referenciáját az indexe alapján.
- Adjon hozzá egy IVideo objektumot, és adja meg a videófájl útvonalát a videó a bemutatóhoz való beágyazásához.
- Adjon hozzá egy IVideoFrame objektumot a videóhoz keret létrehozásához.
- Mentse el a módosított bemutatót.
Ez a Java kód bemutatja, hogyan adjon egy helyileg tárolt videót a bemutatóhoz:
// Példányosítja a Presentation osztályt
Presentation pres = new Presentation("pres.pptx");
try {
// Betölti a videót
FileInputStream fileStream = new FileInputStream("Wildlife.mp4");
IVideo video = pres.getVideos().addVideo(fileStream, LoadingStreamBehavior.KeepLocked);
// Lekéri az első diát és hozzáad egy videokeretet
pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video);
// Mentés a bemutatót a lemezen
pres.save("pres-with-video.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Alternatív megoldásként egy videót hozzáadhat úgy, hogy közvetlenül átadja a fájl útvonalát a addVideoFrame(float x, float y, float width, float height, IVideo video) metódusnak:
Presentation pres = new Presentation();
try {
ISlide sld = pres.getSlides().get_Item(0);
IVideoFrame vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi");
} finally {
if (pres != null) pres.dispose();
}
Videokeret létrehozása webes forrásból származó videóval
A Microsoft PowerPoint 2013 és újabb verziói támogatják a YouTube videókat a bemutatókban. Ha a használni kívánt videó online érhető el (pl. a YouTube-on), hozzáadhatja a bemutatóhoz a webes hivatkozásán keresztül.
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a dia referenciáját az indexe alapján.
- Adjon hozzá egy IVideo objektumot, és adja meg a videó hivatkozását.
- Állítson be egy bélyegképet a videokerethez.
- Mentse el a bemutatót.
Ez a Java kód bemutatja, hogyan adjon egy webes videót a PowerPoint bemutató egy diájához:
// Példányosít egy Presentation objektumot, amely egy bemutató fájlt képvisel
Presentation pres = new Presentation();
try {
addVideoFromYouTube(pres, "Tj75Arhq5ho");
pres.save("out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
private static void addVideoFromYouTube(Presentation pres, String videoID)
{
// Hozzáad egy videokeretet
IVideoFrame videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(
10, 10, 427, 240, "https://www.youtube.com/embed/" + videoID);
videoFrame.setPlayMode(VideoPlayModePreset.Auto);
// Betölti a bélyegképet
String thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg";
URL url;
try {
url = new URL(thumbnailUri);
videoFrame.getPictureFormat().getPicture().setImage(pres.getImages().addImage(url.openStream()));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Videófeliratok kezelése
Az Aspose.Slides lehetővé teszi a zárt feliratok kezelését a PowerPoint videokeretekhez. A feliratok WebVTT formátumban tárolódnak, és a IVideoFrame.getCaptionTracks metóduson keresztül érhetők el.
Feliratok hozzáadása egy videokerethez
Feliratok hozzáadásához egy videokerethez:
- Hozzon létre egy példányt a Presentation osztályból.
- Adjon hozzá egy videót a bemutatóhoz.
- Adjon hozzá egy IVideoFrame objektumot egy diára.
- Használja a ICaptionsCollection objektumot, amelyet a getCaptionTracks visszaad, egy WebVTT felirat sáv hozzáadásához.
- Mentse el a módosított bemutatót.
A következő kód bemutatja, hogyan adjon feliratokat egy videokerethez:
Presentation presentation = new Presentation();
try {
byte[] videoData = // "video.mp4";
IVideo video = presentation.getVideos().addVideo(videoData);
ISlide slide = presentation.getSlides().get_Item(0);
IVideoFrame videoFrame = slide.getShapes().addVideoFrame(0, 0, 100, 100, video);
// Új feliratsáv hozzáadása egy WebVTT fájlból.
videoFrame.getCaptionTracks().add("English", "track.vtt");
presentation.save("video_with_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Az ICaptionsCollection interfész egy túlterhelést is biztosít, amely lehetővé teszi a feliratok streamből történő hozzáadását.
Feliratok kinyerése egy videokeretből
Feliratok kinyeréséhez egy videokeretből:
- Töltse be a videót tartalmazó bemutatót.
- Keresse meg a cél IVideoFrame objektumot.
- Iteráljon a getCaptionTracks által visszaadott feliratsávokon.
- Mentse minden feliratsávot egy
.vttfájlba.
A következő kód bemutatja, hogyan nyerje ki a feliratokat egy videokeretből:
Presentation presentation = new Presentation("video_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
for (IShape shape : slide.getShapes()) {
if (shape instanceof IVideoFrame) {
IVideoFrame videoFrame = (IVideoFrame) shape;
for (ICaptions captionTrack : videoFrame.getCaptionTracks()) {
// A feliratsáv mentése WebVTT fájlba.
FileOutputStream outputStream = new FileOutputStream(captionTrack.getCaptionId() + ".vtt");
outputStream.write(captionTrack.getBinaryData());
outputStream.close();
}
}
}
} finally {
presentation.dispose();
}
Minden ICaptions objektum tartalmazza a felirat azonosítóját, címkéjét, bináris adatait és a felirat szövegét UTF‑8 karakterláncként.
Feliratok eltávolítása egy videokeretből
Feliratok eltávolításához egy videokeretből:
- Töltse be a videót tartalmazó bemutatót.
- Szerezze meg a cél IVideoFrame objektumot.
- Távolítsa el a feliratsávokat a getCaptionTracks által visszaadott gyűjteményből.
- Mentse el a módosított bemutatót.
A következő kód bemutatja, hogyan távolítsa el az összes feliratot egy videokeretből:
Presentation presentation = new Presentation("video_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IVideoFrame videoFrame = (IVideoFrame) slide.getShapes().get_Item(0);
// Eltávolítja az összes feliratot a videokeretből.
videoFrame.getCaptionTracks().clear();
presentation.save("video_without_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Ha csak egy feliratsávot kell eltávolítania, használja a remove vagy a removeAt metódust a clear helyett.
Videó kinyerése egy diáról
A videók diákhoz való hozzáadása mellett az Aspose.Slides lehetővé teszi a bemutatóba beágyazott videók kinyerését.
- Hozzon létre egy példányt a Presentation osztályból a videót tartalmazó bemutató betöltéséhez.
- Iteráljon az összes ISlide objektumon.
- Iteráljon az összes IShape objektumon, hogy megtalálja a VideoFrame elemet.
- Mentse a videót a lemezre.
Ez a Java kód bemutatja, hogyan nyerje ki a videót egy bemutató diáról:
// Példányosít egy Presentation objektumot, amely egy bemutató fájlt képvisel
Presentation pres = new Presentation("VideoSample.pptx");
try {
for (ISlide slide : pres.getSlides())
{
for (IShape shape : slide.getShapes())
{
if (shape instanceof VideoFrame)
{
IVideoFrame vf = (IVideoFrame) shape;
String type = vf.getEmbeddedVideo().getContentType();
int ss = type.lastIndexOf('-');
byte[] buffer = vf.getEmbeddedVideo().getBinaryData();
// A fájl kiterjesztésének lekérése
int charIndex = type.indexOf("/");
type = type.substring(charIndex + 1);
FileOutputStream fop = new FileOutputStream("testing2." + type);
fop.write(buffer);
fop.flush();
fop.close();
}
}
}
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
GYIK
Milyen videolejátszási paraméterek módosíthatók egy VideoFrame esetén?
A playback mode (automatikus vagy kattintásra) és a looping beállításokat vezérelheti. Ezek a lehetőségek a VideoFrame objektum tulajdonságain keresztül érhetők el.
Milyen hatással van a videó hozzáadása a PPTX fájlméretre?
Igen. Ha beágyaz egy helyi videót, a bináris adatok a dokumentumba kerülnek, így a bemutató mérete a fájlmérettel arányosan nő. Ha online videót ad hozzá, 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 meglévő VideoFrame-ben anélkül, hogy megváltoztatnám a pozíciót és a méretet?
Igen. A video content cserélhető a kereten belül, miközben megőrzi a forma geometriai adatait; ez gyakori eset a médiák frissítésére egy meglévő elrendezésben.
Megállapítható a beágyazott videó tartalomtípusa (MIME)?
Igen. A beágyazott videó rendelkezik egy content type értékkel, amelyet kiolvashat és felhasználhat, például lemezre mentéskor.