Beheer videoframes in presentaties op Android
Introductie
Een goed geplaatste video in een presentatie kan uw boodschap overtuigender maken en de betrokkenheid van uw publiek verhogen.
PowerPoint stelt u in staat om video’s toe te voegen aan een dia in een presentatie op twee manieren:
- Een lokale video toevoegen of insluiten (opgeslagen op uw computer)
- Een online video toevoegen (van een webbron zoals YouTube).
Om video’s (video‑objecten) aan een presentatie toe te voegen, biedt Aspose.Slides de IVideo interface, de IVideoFrame interface en andere relevante typen.
Een ingebedde videoframe maken
Als het videobestand dat u aan uw dia wilt toevoegen lokaal is opgeslagen, kunt u een videoframe maken om de video in uw presentatie in te sluiten.
- Maak een instantie van de Presentation klasse.
- Haal een referentie naar een dia op via de index.
- Voeg een IVideo object toe en geef het pad van het videobestand op om de video in de presentatie in te sluiten.
- Voeg een IVideoFrame object toe om een frame voor de video te maken.
- Sla de gewijzigde presentatie op.
Deze Java‑code laat zien hoe u een lokaal opgeslagen video aan een presentatie toevoegt:
// Instantieert de Presentation-klasse
Presentation pres = new Presentation("pres.pptx");
try {
// Laadt de video
FileInputStream fileStream = new FileInputStream("Wildlife.mp4");
IVideo video = pres.getVideos().addVideo(fileStream, LoadingStreamBehavior.KeepLocked);
// Haalt de eerste dia op en voegt een videoframe toe
pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video);
// Slaat de presentatie op schijf
pres.save("pres-with-video.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
U kunt ook een video toevoegen door het bestandspad direct door te geven aan de addVideoFrame(float x, float y, float width, float height, IVideo video) methode:
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();
}
Een videoframe maken met video van een webbron
Microsoft PowerPoint 2013 en nieuwer ondersteunt YouTube‑video’s in presentaties. Als de video die u wilt gebruiken online beschikbaar is (bijv. op YouTube), kunt u deze via de web‑link aan uw presentatie toevoegen.
- Maak een instantie van de Presentation klasse
- Haal een referentie naar een dia op via de index.
- Voeg een IVideo object toe en geef de koppeling naar de video op.
- Stel een miniatuurafbeelding in voor het videoframe.
- Sla de presentatie op.
Deze Java‑code laat zien hoe u een video van het web aan een dia in een PowerPoint‑presentatie toevoegt:
// Instantieert een Presentation-object dat een presentatiebestand vertegenwoordigt
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)
{
// Voegt een videoframe toe
IVideoFrame videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(
10, 10, 427, 240, "https://www.youtube.com/embed/" + videoID);
videoFrame.setPlayMode(VideoPlayModePreset.Auto);
// Laadt miniatuur
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();
}
}
Video‑bijschriften beheren
Aspose.Slides stelt u in staat om ondertitels voor videoframes in PowerPoint‑presentaties te beheren. Ondertitels worden opgeslagen in WebVTT‑formaat en zijn toegankelijk via de IVideoFrame.getCaptionTracks methode.
Ondertitels toevoegen aan een videoframe
Om ondertitels aan een videoframe toe te voegen:
- Maak een instantie van de Presentation klasse.
- Voeg een video toe aan de presentatie.
- Voeg een IVideoFrame object toe aan een dia.
- Gebruik de ICaptionsCollection die wordt geretourneerd door getCaptionTracks om een WebVTT‑ondertiteltrack toe te voegen.
- Sla de gewijzigde presentatie op.
De volgende code laat zien hoe u ondertitels aan een videoframe toevoegt:
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);
// Voegt een nieuwe ondertiteltrack toe vanaf een WebVTT-bestand.
videoFrame.getCaptionTracks().add("English", "track.vtt");
presentation.save("video_with_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
De ICaptionsCollection interface biedt ook een overload waarmee u ondertitels uit een stream kunt toevoegen.
Ondertitels extraheren uit een videoframe
Om ondertitels uit een videoframe te extraheren:
- Laad de presentatie die de video bevat.
- Zoek het doel-IVideoFrame object.
- Itereer door de ondertiteltracks die worden geretourneerd door getCaptionTracks.
- Sla elke ondertiteltrack op in een
.vtt‑bestand.
De volgende code laat zien hoe u ondertitels uit een videoframe kunt extraheren:
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()) {
// Slaat de ondertiteltrack op in een WebVTT-bestand.
FileOutputStream outputStream = new FileOutputStream(captionTrack.getCaptionId() + ".vtt");
outputStream.write(captionTrack.getBinaryData());
outputStream.close();
}
}
}
} finally {
presentation.dispose();
}
Elk ICaptions object geeft de ondertitel‑identificatie, label, binaire gegevens en ondertitelgegevens weer als een UTF‑8‑string.
Ondertitels verwijderen uit een videoframe
Om ondertitels uit een videoframe te verwijderen:
- Laad de presentatie die de video bevat.
- Haal het doel-IVideoFrame object op.
- Verwijder ondertiteltracks uit de collectie die wordt geretourneerd door getCaptionTracks.
- Sla de gewijzigde presentatie op.
De volgende code laat zien hoe u alle ondertitels uit een videoframe verwijdert:
Presentation presentation = new Presentation("video_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IVideoFrame videoFrame = (IVideoFrame) slide.getShapes().get_Item(0);
// Verwijdert alle ondertitels van het videoframe.
videoFrame.getCaptionTracks().clear();
presentation.save("video_without_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Als u slechts één ondertiteltrack wilt verwijderen, gebruik dan de remove of removeAt methoden in plaats van clear.
Video extraheren van een dia
Naast het toevoegen van video’s aan dia’s, stelt Aspose.Slides u in staat om video’s die in presentaties zijn ingebed te extraheren.
- Maak een instantie van de Presentation klasse om de presentatie die de video bevat te laden.
- Itereer door alle ISlide objecten.
- Itereer door alle IShape objecten om een VideoFrame te vinden.
- Sla de video op schijf op.
Deze Java‑code laat zien hoe u de video van een presentatiedia kunt extraheren:
// Instantieert een Presentation-object dat een presentatiebestand vertegenwoordigt
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();
// Haalt de bestandsextensie op
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();
}
Veelgestelde vragen
Welke videoweergave‑parameters kunnen worden gewijzigd voor een VideoFrame?
U kunt de playback mode (automatisch of bij klik) en het looping regelen. Deze opties zijn beschikbaar via de eigenschappen van het VideoFrame object.
Heeft het toevoegen van een video invloed op de bestandsgrootte van de PPTX?
Ja. Wanneer u een lokale video insluit, worden de binaire gegevens in het document opgenomen, waardoor de presentatiegrootte evenredig groeit met de bestandsgrootte. Wanneer u een online video toevoegt, worden een link en een miniatuurafbeelding ingesloten, waardoor de toename van de grootte kleiner is.
Kan ik de video in een bestaand VideoFrame vervangen zonder positie en grootte te wijzigen?
Ja. U kunt de video content binnen het frame verwisselen terwijl u de geometrie van de vorm behoudt; dit is een veelvoorkomend scenario voor het bijwerken van media in een bestaande lay-out.
Kan het inhoudstype (MIME) van een ingebedde video worden bepaald?
Ja. Een ingebedde video heeft een content type die u kunt lezen en gebruiken, bijvoorbeeld bij het opslaan op schijf.