Gérer les trames vidéo dans les présentations sur Android
Une vidéo bien placée dans une présentation peut rendre votre message plus percutant et augmenter le niveau d’engagement de votre audience.
PowerPoint vous permet d’ajouter des vidéos à une diapositive d’une présentation de deux manières :
- Ajouter ou incorporer une vidéo locale (stockée sur votre machine)
- Ajouter une vidéo en ligne (provenant d’une source web telle que YouTube).
Pour vous permettre d’ajouter des vidéos (objets vidéo) à une présentation, Aspose.Slides fournit l’interface IVideo, l’interface IVideoFrame et d’autres types pertinents.
Créer une trame vidéo incorporée
Si le fichier vidéo que vous souhaitez ajouter à votre diapositive est stocké localement, vous pouvez créer une trame vidéo pour incorporer la vidéo dans votre présentation.
- Créez une instance de la classe Presentation.
- Obtenez la référence d’une diapositive par son indice.
- Ajoutez un objet IVideo et transmettez le chemin du fichier vidéo pour incorporer la vidéo à la présentation.
- Ajoutez un objet IVideoFrame pour créer une trame pour la vidéo.
- Enregistrez la présentation modifiée.
Ce code Java montre comment ajouter une vidéo stockée localement à une présentation :
// Instancie la classe Presentation
Presentation pres = new Presentation("pres.pptx");
try {
// Charge la vidéo
FileInputStream fileStream = new FileInputStream("Wildlife.mp4");
IVideo video = pres.getVideos().addVideo(fileStream, LoadingStreamBehavior.KeepLocked);
// Récupère la première diapositive et ajoute une trame vidéo
pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video);
// Enregistre la présentation sur le disque
pres.save("pres-with-video.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Vous pouvez également ajouter une vidéo en passant directement son chemin de fichier à la méthode addVideoFrame(float x, float y, float width, float height, IVideo video) :
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();
}
Créer une trame vidéo avec une vidéo provenant d’une source Web
Microsoft PowerPoint 2013 et versions ultérieures prend en charge les vidéos YouTube dans les présentations. Si la vidéo que vous souhaitez utiliser est disponible en ligne (par ex. sur YouTube), vous pouvez l’ajouter à votre présentation via son lien web.
- Créez une instance de la classe Presentation.
- Obtenez la référence d’une diapositive par son indice.
- Ajoutez un objet IVideo et transmettez le lien vers la vidéo.
- Définissez une vignette pour la trame vidéo.
- Enregistrez la présentation.
Ce code Java montre comment ajouter une vidéo depuis le web à une diapositive d’une présentation PowerPoint :
// Instancie un objet Presentation qui représente un fichier de présentation
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)
{
// Ajoute une trame vidéo
IVideoFrame videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(
10, 10, 427, 240, "https://www.youtube.com/embed/" + videoID);
videoFrame.setPlayMode(VideoPlayModePreset.Auto);
// Charge la vignette
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();
}
}
Gérer les sous‑titres vidéo
Aspose.Slides vous permet de gérer les sous‑titres fermés pour les trames vidéo dans les présentations PowerPoint. Les sous‑titres sont stockés au format WebVTT et sont exposés via la méthode IVideoFrame.getCaptionTracks .
Ajouter des sous‑titres à une trame vidéo
Pour ajouter des sous‑titres à une trame vidéo :
- Créez une instance de la classe Presentation .
- Ajoutez une vidéo à la présentation.
- Ajoutez un objet IVideoFrame à une diapositive.
- Utilisez l’interface ICaptionsCollection retournée par getCaptionTracks pour ajouter une piste de sous‑titre WebVTT.
- Enregistrez la présentation modifiée.
Le code suivant montre comment ajouter des sous‑titres à une trame vidéo :
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);
// Ajoute une nouvelle piste de sous‑titres à partir d'un fichier WebVTT.
videoFrame.getCaptionTracks().add("English", "track.vtt");
presentation.save("video_with_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
L’interface ICaptionsCollection propose également une surcharge qui vous permet d’ajouter des sous‑titres depuis un flux.
Extraire les sous‑titres d’une trame vidéo
Pour extraire les sous‑titres d’une trame vidéo :
- Chargez la présentation contenant la vidéo.
- Trouvez l’objet cible IVideoFrame.
- Parcourez les pistes de sous‑titres retournées par getCaptionTracks.
- Enregistrez chaque piste de sous‑titre dans un fichier
.vtt.
Le code suivant montre comment extraire les sous‑titres d’une trame vidéo :
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()) {
// Enregistre la piste de sous‑titres dans un fichier WebVTT.
FileOutputStream outputStream = new FileOutputStream(captionTrack.getCaptionId() + ".vtt");
outputStream.write(captionTrack.getBinaryData());
outputStream.close();
}
}
}
} finally {
presentation.dispose();
}
Chaque objet ICaptions expose l’identifiant du sous‑titre, le libellé, les données binaires et les données du sous‑titre sous forme de chaîne UTF‑8.
Supprimer les sous‑titres d’une trame vidéo
Pour supprimer les sous‑titres d’une trame vidéo :
- Chargez la présentation contenant la vidéo.
- Obtenez l’objet cible IVideoFrame.
- Supprimez les pistes de sous‑titres de la collection retournée par getCaptionTracks.
- Enregistrez la présentation modifiée.
Le code suivant montre comment supprimer tous les sous‑titres d’une trame vidéo :
Presentation presentation = new Presentation("video_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IVideoFrame videoFrame = (IVideoFrame) slide.getShapes().get_Item(0);
// Supprime tous les sous‑titres de la trame vidéo.
videoFrame.getCaptionTracks().clear();
presentation.save("video_without_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Si vous devez supprimer une seule piste de sous‑titre, utilisez les méthodes remove ou removeAt au lieu de clear .
Extraire la vidéo d’une diapositive
En plus d’ajouter des vidéos aux diapositives, Aspose.Slides vous permet d’extraire les vidéos incorporées dans les présentations.
- Créez une instance de la classe Presentation pour charger la présentation contenant la vidéo.
- Parcourez tous les objets ISlide.
- Parcourez tous les objets IShape afin de trouver un VideoFrame.
- Enregistrez la vidéo sur le disque.
Ce code Java montre comment extraire la vidéo d’une diapositive de présentation :
// Instancie un objet Presentation qui représente un fichier de présentation
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();
// Obtient l'extension du fichier
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();
}
FAQ
Quels paramètres de lecture vidéo peuvent être modifiés pour une VideoFrame ?
Vous pouvez contrôler le mode de lecture (automatique ou sur clic) et le bouclage. Ces options sont disponibles via les propriétés de l’objet VideoFrame .
L’ajout d’une vidéo affecte-t‑il la taille du fichier PPTX ?
Oui. Lorsque vous incorporez une vidéo locale, les données binaires sont incluses dans le document, ce qui augmente la taille de la présentation proportionnellement à la taille du fichier. Lorsque vous ajoutez une vidéo en ligne, un lien et une vignette sont incorporés, ce qui entraîne une augmentation de taille moindre.
Puis‑je remplacer la vidéo d’une VideoFrame existante sans changer sa position et sa taille ?
Oui. Vous pouvez remplacer le contenu vidéo à l’intérieur de la trame tout en conservant la géométrie de la forme ; c’est un scénario fréquent pour mettre à jour les médias dans une mise en page existante.
Peut‑on déterminer le type de contenu (MIME) d’une vidéo incorporée ?
Oui. Une vidéo incorporée possède un type de contenu que vous pouvez lire et utiliser, par exemple lors de son enregistrement sur le disque.