إدارة إطارات الفيديو في العروض التقديمية على Android
يمكن للفيديو الموضوع في المكان المناسب داخل العرض التقديمي أن يجعل رسالتك أكثر إقناعًا ويزيد من مستوى التفاعل مع جمهورك.
PowerPoint يسمح لك بإضافة مقاطع فيديو إلى شريحة في عرض تقديمي بطريقتين:
- إضافة أو تضمين فيديو محلي (مخزن على جهازك)
- إضافة فيديو عبر الإنترنت (من مصدر ويب مثل YouTube).
لتمكينك من إضافة مقاطع فيديو (كائنات فيديو) إلى عرض تقديمي، توفر Aspose.Slides الواجهة IVideo والواجهة IVideoFrame وأنواع أخرى ذات صلة.
إنشاء إطار فيديو مضمّن
إذا كان ملف الفيديو الذي تريد إضافته إلى شريحتك مخزنًا محليًا، يمكنك إنشاء إطار فيديو لتضمين الفيديو في عرضك التقديمي.
- إنشاء نسخة من الفئة Presentation class.
- الحصول على مرجع الشريحة عبر فهرسها.
- إضافة كائن IVideo وتمرير مسار ملف الفيديو لتضمين الفيديو مع العرض التقديمي.
- إضافة كائن IVideoFrame لإنشاء إطار للفيديو.
- حفظ العرض التقديمي المُعدَّل.
هذا كود Java يوضح لك كيفية إضافة فيديو مخزن محليًا إلى عرض تقديمي:
// ينشئ كائن من فئة Presentation
Presentation pres = new Presentation("pres.pptx");
try {
// يحمل الفيديو
FileInputStream fileStream = new FileInputStream("Wildlife.mp4");
IVideo video = pres.getVideos().addVideo(fileStream, LoadingStreamBehavior.KeepLocked);
// يحصل على الشريحة الأولى ويضيف إطار فيديو
pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video);
// يحفظ العرض التقديمي إلى القرص
pres.save("pres-with-video.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
بدلاً من ذلك، يمكنك إضافة فيديو بتمرير مسار ملفه مباشرة إلى طريقة 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();
}
إنشاء إطار فيديو باستخدام فيديو من مصدر ويب
Microsoft PowerPoint 2013 and newer يدعم مقاطع فيديو YouTube في العروض التقديمية. إذا كان الفيديو الذي تريد استخدامه متاحًا على الإنترنت (مثلًا على YouTube)، يمكنك إضافته إلى عرضك التقديمي عبر الرابط الإلكتروني الخاص به.
- إنشاء نسخة من الفئة Presentation class
- الحصول على مرجع الشريحة عبر فهرسها.
- إضافة كائن IVideo وتمرير الرابط إلى الفيديو.
- تعيين صورة مصغرة لإطار الفيديو.
- حفظ العرض التقديمي.
هذا كود Java يوضح لك كيفية إضافة فيديو من الويب إلى شريحة في عرض PowerPoint:
// ينشئ كائن Presentation الذي يمثل ملف عرض تقديمي
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)
{
// يضيف إطار فيديو
IVideoFrame videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(
10, 10, 427, 240, "https://www.youtube.com/embed/" + videoID);
videoFrame.setPlayMode(VideoPlayModePreset.Auto);
// يحمّل الصورة المصغرة
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();
}
}
إدارة تسميات الفيديو
Aspose.Slides تسمح لك بإدارة التسميات المغلقة لإطارات الفيديو في عروض PowerPoint. تُخزن التسميات بصيغة WebVTT وتتوفر عبر الطريقة IVideoFrame.getCaptionTracks .
إضافة تسميات إلى إطار الفيديو
لإضافة تسميات إلى إطار فيديو:
- إنشاء نسخة من الفئة Presentation class.
- إضافة فيديو إلى العرض التقديمي.
- إضافة كائن IVideoFrame إلى شريحة.
- استخدام ICaptionsCollection المسترجعة من getCaptionTracks لإضافة مسار تسميات WebVTT.
- حفظ العرض التقديمي المعدل.
الكود التالي يوضح لك كيفية إضافة تسميات إلى إطار فيديو:
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);
// يضيف مسار تسميات جديد من ملف WebVTT.
videoFrame.getCaptionTracks().add("English", "track.vtt");
presentation.save("video_with_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
الواجهة ICaptionsCollection توفر أيضًا نسخة تحميل تسمح لك بإضافة تسميات من تدفق بيانات.
استخراج تسميات من إطار الفيديو
لاستخراج تسميات من إطار فيديو:
- تحميل العرض التقديمي الذي يحتوي على الفيديو.
- العثور على كائن IVideoFrame الهدف.
- التكرار عبر مسارات التسميات المسترجعة من getCaptionTracks.
- حفظ كل مسار تسمية في ملف
.vtt.
الكود التالي يوضح لك كيفية استخراج تسميات من إطار فيديو:
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()) {
// يحفظ مسار التسميات إلى ملف WebVTT.
FileOutputStream outputStream = new FileOutputStream(captionTrack.getCaptionId() + ".vtt");
outputStream.write(captionTrack.getBinaryData());
outputStream.close();
}
}
}
} finally {
presentation.dispose();
}
كل كائن ICaptions يُظهر معرّف التسمية، التسمية، البيانات الثنائية، وبيانات التسمية كسلسلة UTF-8.
إزالة تسميات من إطار الفيديو
لإزالة تسميات من إطار فيديو:
- تحميل العرض التقديمي الذي يحتوي على الفيديو.
- الحصول على كائن IVideoFrame الهدف.
- إزالة مسارات التسميات من المجموعة المسترجعة من getCaptionTracks.
- حفظ العرض التقديمي المعدل.
الكود التالي يوضح لك كيفية إزالة جميع التسميات من إطار فيديو:
Presentation presentation = new Presentation("video_with_captions.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IVideoFrame videoFrame = (IVideoFrame) slide.getShapes().get_Item(0);
// يزيل جميع التسميات من إطار الفيديو.
videoFrame.getCaptionTracks().clear();
presentation.save("video_without_captions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
إذا كنت بحاجة إلى إزالة مسار تسمية واحد فقط، استخدم الطرق remove أو removeAt بدلاً من clear .
استخراج فيديو من شريحة
إلى جانب إضافة فيديوهات إلى الشرائح، تسمح لك Aspose.Slides باستخراج الفيديوهات المدمجة في العروض التقديمية.
- إنشاء نسخة من الفئة Presentation لتحميل العرض التقديمي الذي يحتوي على الفيديو.
- التكرار عبر جميع كائنات ISlide.
- التكرار عبر جميع كائنات IShape للعثور على VideoFrame.
- حفظ الفيديو إلى القرص.
هذا كود Java يوضح لك كيفية استخراج الفيديو من شريحة عرض تقديمي:
// ينشئ كائن Presentation الذي يمثل ملف عرض تقديمي
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();
// يحصل على امتداد الملف
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();
}
الأسئلة المتكررة
ما هي معلمات تشغيل الفيديو التي يمكن تغييرها لإطار الفيديو؟
يمكنك التحكم في وضع التشغيل (تلقائي أو عند النقر) والتكرار. هذه الخيارات متاحة عبر خصائص كائن VideoFrame .
هل يؤثر إضافة فيديو على حجم ملف PPTX؟
نعم. عندما تقوم بدمج فيديو محلي، تُضمّن البيانات الثنائية في المستند، وبالتالي ينمو حجم العرض التقديمي بما يتناسب مع حجم الملف. عندما تضيف فيديو عبر الإنترنت، يُدمج الرابط وصورة مصغرة فقط، لذا يكون الزيادة أصغر.
هل يمكنني استبدال الفيديو في إطار فيديو موجود دون تغيير موقعه وحجمه؟
نعم. يمكنك استبدال محتوى الفيديو داخل الإطار مع الحفاظ على أبعاد الشكل؛ هذا سيناريو شائع لتحديث الوسائط في تخطيط موجود.
هل يمكن تحديد نوع المحتوى (MIME) لفيديو مدمج؟
نعم. للفيديو المدمج نوع محتوى content type يمكنك قراءته واستخدامه، على سبيل المثال عند حفظه إلى القرص.