Διαχείριση Πλαισίων Βίντεο σε Παρουσιάσεις με JavaScript
Εισαγωγή
Ένα καλά τοποθετημένο βίντεο σε μια παρουσίαση μπορεί να κάνει το μήνυμά σας πιο συναρπαστικό και να αυξήσει τα επίπεδα εμπλοκής με το κοινό σας.
Το PowerPoint σας επιτρέπει να προσθέσετε βίντεο σε μια διαφάνεια μιας παρουσίασης με δύο τρόπους:
- Προσθέστε ή ενσωματώστε ένα τοπικό βίντεο (αποθηκευμένο στον υπολογιστή σας)
- Προσθέστε ένα διαδικτυακό βίντεο (από πηγή web όπως το YouTube).
Για να μπορείτε να προσθέσετε βίντεο (αντικείμενα βίντεο) σε μια παρουσίαση, το Aspose.Slides παρέχει την κλάση Video , την κλάση VideoFrame και άλλους σχετικούς τύπους.
Δημιουργία Ενσωματωμένου Πλαισίου Βίντεο
Εάν το αρχείο βίντεο που θέλετε να προσθέσετε στη διαφάνεια σας είναι αποθηκευμένο τοπικά, μπορείτε να δημιουργήσετε ένα πλαίσιο βίντεο για να ενσωματώσετε το βίντεο στην παρουσίασή σας.
- Δημιουργήστε μια παρουσία της κλάσης Presentation
- Λάβετε την αναφορά μιας διαφάνειας μέσω του δείκτη της.
- Προσθέστε ένα αντικείμενο Video και περάστε τη διαδρομή του αρχείου βίντεο για να ενσωματώσετε το βίντεο στην παρουσίαση.
- Προσθέστε ένα αντικείμενο VideoFrame για να δημιουργήσετε ένα πλαίσιο για το βίντεο.
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Αυτός ο κώδικας JavaScript σας δείχνει πώς να προσθέσετε ένα τοπικά αποθηκευμένο βίντεο σε μια παρουσίαση:
// Δημιουργεί μια παρουσία της κλάσης Presentation
var pres = new aspose.slides.Presentation("pres.pptx");
try {
// Φορτώνει το βίντεο
var fileStream = java.newInstanceSync("java.io.FileInputStream", "Wildlife.mp4");
var video = pres.getVideos().addVideo(fileStream, aspose.slides.LoadingStreamBehavior.KeepLocked);
// Παίρνει την πρώτη διαφάνεια και προσθέτει ένα πλαίσιο βίντεο
pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video);
// Αποθηκεύει την παρουσίαση στο δίσκο
pres.save("pres-with-video.pptx", aspose.slides.SaveFormat.Pptx);
} catch (e) {console.log(e);
} finally {
if (pres != null) {
pres.dispose();
}
}
Εναλλακτικά, μπορείτε να προσθέσετε ένα βίντεο περνώντας απευθείας τη διαδρομή του αρχείου στη μέθοδο addVideoFrame(float x, float y, float width, float height, IVideo video):
var pres = new aspose.slides.Presentation();
try {
var sld = pres.getSlides().get_Item(0);
var vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi");
} finally {
if (pres != null) {
pres.dispose();
}
}
Δημιουργία Πλαισίου Βίντεο με Βίντεο από Διαδικτυακή Πηγή
Η Microsoft PowerPoint 2013 και νεότερες εκδόσεις υποστηρίζει βίντεο YouTube στις παρουσιάσεις. Εάν το βίντεο που θέλετε να χρησιμοποιήσετε είναι διαθέσιμο online (π.χ. στο YouTube), μπορείτε να το προσθέσετε στην παρουσίαση μέσω του διαδικτυακού του συνδέσμου.
- Δημιουργήστε μια παρουσία της κλάσης Presentation
- Λάβετε την αναφορά μιας διαφάνειας μέσω του δείκτη της.
- Προσθέστε ένα αντικείμενο Video και περάστε τον σύνδεσμο προς το βίντεο.
- Ορίστε μια μικρογραφία για το πλαίσιο βίντεο.
- Αποθηκεύστε την παρουσίαση.
Αυτός ο κώδικας JavaScript σας δείχνει πώς να προσθέσετε ένα βίντεο από το web σε μια διαφάνεια σε μια παρουσίαση PowerPoint:
// Δημιουργεί ένα αντικείμενο Presentation που αντιπροσωπεύει ένα αρχείο παρουσίασης
var pres = new aspose.slides.Presentation();
try {
addVideoFromYouTube(pres, "Tj75Arhq5ho");
pres.save("out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
async function addVideoFromYouTube(pres, videoID) {
let slide = pres.getSlides().get_Item(0);
let videoUrl = "https://www.youtube.com/embed/" + videoID;
let videoFrame = slide.getShapes().addVideoFrame(10, 10, 427, 240, videoUrl);
videoFrame.setPlayMode(aspose.slides.VideoPlayModePreset.Auto);
let thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg";
try {
const imageStream = await getImageStream(thumbnailUri);
let image = pres.getImages().addImage(imageStream);
videoFrame.getPictureFormat().getPicture().setImage(image);
} catch (error) {
console.error("Error loading thumbnail:", error);
}
}
async function getImageStream(url) {
return new Promise((resolve, reject) => {
http.get(url, (response) => {
if (response.statusCode === 200) {
resolve(response);
} else {
reject(new Error(`Failed to load image: ${response.statusCode}`));
}
}).on('error', (e) => {
reject(e);
});
});
}
Περικοπή Πλαισίου Βίντεο
Το Aspose.Slides σας επιτρέπει να ελέγξετε ποιο τμήμα ενός βίντεο θα αναπαραχθεί ορίζοντας τις τιμές trim-from-start και trim-from-end μέσω των VideoFrame.setTrimFromStart και VideoFrame.setTrimFromEnd. Και οι δύο τιμές καθορίζονται σε χιλιοστά του δευτερολέπτου και ορίζουν πόσο χρόνο θα παραληφθεί από την αρχή και το τέλος του βίντεο, αντίστοιχα. Αυτές οι ρυθμίσεις αλλάζουν τις ρυθμίσεις αναπαραγωγής του βίντεο στην παρουσίαση· δεν κόβουν ή τροποποιούν τα ενσωματωμένα δυαδικά δεδομένα του βίντεο.
Ορισμός Ρυθμίσεων Περικοπής
Για να δημιουργήσετε ένα πλαίσιο βίντεο και να ορίσετε τις ρυθμίσεις περικοπής του:
- Δημιουργήστε μια παρουσία της κλάσης Presentation
- Προσθέστε ένα αντικείμενο Video στην παρουσίαση.
- Προσθέστε ένα αντικείμενο VideoFrame σε μια διαφάνεια.
- Ορίστε τις τιμές trim-from-start και trim-from-end μέσω των VideoFrame.setTrimFromStart και VideoFrame.setTrimFromEnd.
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Ο παρακάτω κώδικας παραλείπει τα πρώτα 2,5 δευτερόλεπτα και το τελευταίο δευτερόλεπτο ενός ενσωματωμένου βίντεο κατά την αναπαραγωγή:
const presentation = new aspose.slides.Presentation();
try {
const videoStream = java.newInstanceSync("java.io.FileInputStream", "video.mp4");
try {
const video = presentation.getVideos().addVideo(
videoStream, aspose.slides.LoadingStreamBehavior.ReadStreamAndRelease);
const slide = presentation.getSlides().get_Item(0);
const videoFrame = slide.getShapes().addVideoFrame(50, 50, 640, 360, video);
videoFrame.setTrimFromStart(2500);
videoFrame.setTrimFromEnd(1000);
presentation.save("video_with_trim.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
videoStream.close();
}
} finally {
presentation.dispose();
}
Ανάγνωση Ρυθμίσεων Περικοπής
Για να εξετάσετε υφιστάμενες ρυθμίσεις περικοπής, φορτώστε μια παρουσίαση, βρείτε ένα αντικείμενο VideoFrame μεταξύ των σχημάτων στην πρώτη διαφάνεια και διαβάστε τις τιμές μέσω των VideoFrame.getTrimFromStart και VideoFrame.getTrimFromEnd.
Ο παρακάτω κώδικας εντοπίζει το πρώτο πλαίσιο βίντεο στην πρώτη διαφάνεια και αναφέρει τις ρυθμίσεις περικοπής του σε χιλιοστά του δευτερολέπτου:
const presentation = new aspose.slides.Presentation("video_with_trim.pptx");
try {
const slide = presentation.getSlides().get_Item(0);
const shapeCount = slide.getShapes().size();
for (let shapeIndex = 0; shapeIndex < shapeCount; shapeIndex++) {
const shape = slide.getShapes().get_Item(shapeIndex);
if (java.instanceOf(shape, "com.aspose.slides.VideoFrame")) {
const videoFrame = shape;
const trimFromStart = videoFrame.getTrimFromStart();
const trimFromEnd = videoFrame.getTrimFromEnd();
console.log("Trim from start: " + trimFromStart + " ms");
console.log("Trim from end: " + trimFromEnd + " ms");
break;
}
}
} finally {
presentation.dispose();
}
Διαχείριση Υπότιτλων Βίντεο
Το Aspose.Slides σας επιτρέπει να διαχειριστείτε κλειστά υπότιτλους για πλαίσια βίντεο σε παρουσιάσεις PowerPoint. Οι υπότιτλοι αποθηκεύονται σε μορφή WebVTT και είναι προσβάσιμοι μέσω της μεθόδου VideoFrame.getCaptionTracks.
Προσθήκη Υπότιτλων σε Πλαίσιο Βίντεο
Για να προσθέσετε υπότιτλους σε ένα πλαίσιο βίντεο:
- Δημιουργήστε μια παρουσία της κλάσης Presentation
- Προσθέστε ένα βίντεο στην παρουσίαση.
- Προσθέστε ένα αντικείμενο VideoFrame σε μια διαφάνεια.
- Χρησιμοποιήστε τη συλλογή CaptionsCollection για να προσθέσετε ένα κομμάτι υπότιτλου WebVTT.
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Ο παρακάτω κώδικας δείχνει πώς να προσθέσετε υπότιτλους σε ένα πλαίσιο βίντεο:
let presentation = new aspose.slides.Presentation();
try {
let videoStream = java.newInstanceSync("java.io.FileInputStream", "video.mp4");
let video = presentation.getVideos().addVideo(videoStream, aspose.slides.LoadingStreamBehavior.KeepLocked);
let slide = presentation.getSlides().get_Item(0);
let videoFrame = slide.getShapes().addVideoFrame(0, 0, 100, 100, video);
// Προσθέτει ένα νέο κομμάτι υπότιτλων από αρχείο WebVTT.
videoFrame.getCaptionTracks().add("English", "track.vtt");
presentation.save("video_with_captions.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Η κλάση CaptionsCollection παρέχει επίσης τη μέθοδο addFromStream που σας επιτρέπει να προσθέσετε υπότιτλους από ένα ρεύμα.
Εξαγωγή Υπότιτλων από Πλαίσιο Βίντεο
Για να εξάγετε υπότιτλους από ένα πλαίσιο βίντεο:
- Φορτώστε την παρουσίαση που περιέχει το βίντεο.
- Εντοπίστε το αντικείμενο VideoFrame.
- Περάστε τη συλλογή CaptionsCollection.
- Αποθηκεύστε κάθε κομμάτι υπότιτλου σε αρχείο
.vtt.
Ο παρακάτω κώδικας δείχνει πώς να εξάγετε υπότιτλους από ένα πλαίσιο βίντεο:
let presentation = new aspose.slides.Presentation("video_with_captions.pptx");
try {
let slide = presentation.getSlides().get_Item(0);
let shapeCount = slide.getShapes().size();
for (let shapeIndex = 0; shapeIndex < shapeCount; shapeIndex++) {
let shape = slide.getShapes().get_Item(shapeIndex);
if (java.instanceOf(shape, "com.aspose.slides.VideoFrame")) {
let videoFrame = shape;
let trackCount = videoFrame.getCaptionTracks().getCount();
for (let trackIndex = 0; trackIndex < trackCount; trackIndex++) {
let captionTrack = videoFrame.getCaptionTracks().get_Item(trackIndex);
// Αποθηκεύει το κομμάτι υποτίτλων σε αρχείο WebVTT.
let filePath = captionTrack.getCaptionId() + ".vtt";
let captionData = Buffer.from(captionTrack.getBinaryData());
fs.writeFileSync(filePath, captionData);
}
}
}
} finally {
presentation.dispose();
}
Κάθε αντικείμενο Captions εκθέτει το αναγνωριστικό του υπότιτλου, την ετικέτα, τα δυαδικά δεδομένα και το κείμενο υπότιτλου ως συμβολοσειρά UTF-8.
Αφαίρεση Υπότιτλων από Πλαίσιο Βίντεο
Για να αφαιρέσετε υπότιτλους από ένα πλαίσιο βίντεο:
- Φορτώστε την παρουσίαση που περιέχει το βίντεο.
- Αποκτήστε το αντικείμενο VideoFrame.
- Αφαιρέστε τα κομμάτια υπότιτλων από τη συλλογή CaptionsCollection.
- Αποθηκεύστε την τροποποιημένη παρουσίαση.
Ο παρακάτω κώδικας δείχνει πώς να αφαιρέσετε όλους τους υπότιτλους από ένα πλαίσιο βίντεο:
let presentation = new aspose.slides.Presentation("video_with_captions.pptx");
try {
let slide = presentation.getSlides().get_Item(0);
let videoFrame = slide.getShapes().get_Item(0); // τύπος: com.aspose.slides.VideoFrame
// Αφαίρεει όλους τους υπότιτλους από το πλαίσιο βίντεο.
videoFrame.getCaptionTracks().clear();
presentation.save("video_without_captions.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Εάν χρειάζεται να αφαιρέσετε μόνο ένα κομμάτι υπότιτλου, χρησιμοποιήστε τις μεθόδους remove ή removeAt αντί για τη clear.
Εξαγωγή Βίντεο από Διαφάνεια
Εκτός από την προσθήκη βίντεο σε διαφάνειες, το Aspose.Slides σας επιτρέπει να εξάγετε βίντεο ενσωματωμένα σε παρουσιάσεις.
- Δημιουργήστε μια παρουσία της κλάσης Presentation για να φορτώσετε την παρουσίαση που περιέχει το βίντεο.
- Περάστε όλα τα αντικείμενα Slide.
- Περάστε όλα τα αντικείμενα Shape για να εντοπίσετε ένα VideoFrame.
- Αποθηκεύστε το βίντεο στο δίσκο.
Αυτός ο κώδικας JavaScript σας δείχνει πώς να εξάγετε το βίντεο από μια διαφάνεια παρουσίασης:
// Δημιουργεί ένα αντικείμενο Presentation που αντιπροσωπεύει ένα αρχείο παρουσίασης
var pres = new aspose.slides.Presentation("VideoSample.pptx");
try {
for (let i = 0; i < pres.getSlides().size(); i++) {
let slide = pres.getSlides().get_Item(i);
for (let j = 0; j < slide.getShapes().size(); j++) {
let shape = slide.getShapes().get_Item(j);
if (java.instanceOf(shape, "com.aspose.slides.VideoFrame")) {
var vf = shape;
console.log(shape);
var type = vf.getEmbeddedVideo().getContentType();
var ss = type.lastIndexOf('-');
const buffer = Buffer.from(vf.getEmbeddedVideo().getBinaryData());
console.log(buffer);
// Λαμβάνει την επέκταση αρχείου
var charIndex = type.indexOf("/");
type = type.substring(charIndex + 1);
fs.writeFileSync("testing2." + type, buffer);
}
}
}
} catch (e) {console.log(e);
} finally {
if (pres != null) {
pres.dispose();
}
}
Συχνές Ερωτήσεις
Ποιοι παράμετροι αναπαραγωγής βίντεο μπορούν να τροποποιηθούν για ένα VideoFrame;
Μπορείτε να ελέγξετε τη λειτουργία αναπαραγωγής (αυτόματα ή με κλικ) και την επανάληψη. Αυτές οι επιλογές είναι διαθέσιμες μέσω των ιδιοτήτων του αντικειμένου VideoFrame.
Επηρεάζει η προσθήκη βίντεο το μέγεθος του αρχείου PPTX;
Ναι. Όταν ενσωματώνετε ένα τοπικό βίντεο, τα δυαδικά δεδομένα συμπεριλαμβάνονται στο έγγραφο, οπότε το μέγεθος της παρουσίασης αυξάνεται ανάλογα με το μέγεθος του αρχείου. Όταν προσθέτετε ένα διαδικτυακό βίντεο, ενσωματώνεται ένας σύνδεσμος και μια μικρογραφία, οπότε η αύξηση του μεγέθους είναι μικρότερη.
Μπορώ να αντικαταστήσω το βίντεο σε ένα υπάρχον VideoFrame χωρίς να αλλάξω τη θέση και το μέγεθός του;
Ναι. Μπορείτε να ανταλλάξετε το περιεχόμενο βίντεο μέσα στο πλαίσιο διατηρώντας τη γεωμετρία του σχήματος· αυτό είναι κοινή πρακτική για την ενημέρωση πολυμέσων σε υπάρχουσα διάταξη.
Μπορεί να προσδιοριστεί ο τύπος περιεχομένου (MIME) ενός ενσωματωμένου βίντεο;
Ναι. Ένα ενσωματωμένο βίντεο έχει ένα τύπο περιεχομένου που μπορείτε να διαβάσετε και να χρησιμοποιήσετε, για παράδειγμα όταν το αποθηκεύετε στο δίσκο.