إدارة إطارات الفيديو في العروض التقديمية باستخدام C++
يمكن للفيديو الموضوع في المكان المناسب داخل عرض تقديمي أن يجعل رسالتك أكثر إقناعًا ويزيد من مستويات التفاعل مع جمهورك.
PowerPoint يتيح لك إضافة مقاطع فيديو إلى شريحة في عرض تقديمي بطريقتين:
- إضافة أو تضمين فيديو محلي (مخزن على جهازك)
- إضافة فيديو عبر الإنترنت (من مصدر ويب مثل YouTube).
للسماح لك بإضافة مقاطع فيديو (كائنات فيديو) إلى عرض تقديمي، توفر Aspose.Slides واجهة IVideo ، وواجهة IVideoFrame ، وغيرها من الأنواع ذات الصلة.
إنشاء إطار فيديو مدمج
إذا كان ملف الفيديو الذي تريد إضافته إلى شريحتك مخزنًا محليًا، يمكنك إنشاء إطار فيديو لتضمين الفيديو في عرضك التقديمي.
- إنشاء كائن من الفئة Presentation class.
- الحصول على مرجع الشريحة عبر فهرستها.
- إضافة كائن IVideo وتمرير مسار ملف الفيديو لتضمين الفيديو مع العرض التقديمي.
- إضافة كائن IVideoFrame لإنشاء إطار للفيديو.
- حفظ العرض التقديمي المعدل.
يعرض لك هذا الكود C++ كيفية إضافة فيديو مخزن محليًا إلى عرض تقديمي:
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");
// Loads the video
System::SharedPtr<System::IO::FileStream> fileStream = System::MakeObject<System::IO::FileStream>(u"Wildlife.mp4", System::IO::FileMode::Open, System::IO::FileAccess::Read);
System::SharedPtr<IVideo> video = pres->get_Videos()->AddVideo(fileStream, LoadingStreamBehavior::KeepLocked);
// Gets the first slide and adds a videoframe
pres->get_Slide(0)->get_Shapes()->AddVideoFrame(10.0f, 10.0f, 150.0f, 250.0f, video);
// Saves the presentation to disk
pres->Save(u"pres-with-video.pptx", SaveFormat::Pptx);
بدلاً من ذلك، يمكنك إضافة فيديو بتمرير مسار ملفه مباشرةً إلى طريقة AddVideoFrame() :
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>();
System::SharedPtr<ISlide> sld = pres->get_Slide(0);
System::SharedPtr<IVideoFrame> vf = sld->get_Shapes()->AddVideoFrame(50.0f, 150.0f, 300.0f, 150.0f, u"video1.avi");
إنشاء إطار فيديو باستخدام فيديو من مصدر ويب
Microsoft PowerPoint 2013 والإصدارات الأحدث يدعم مقاطع فيديو YouTube في العروض التقديمية. إذا كان الفيديو الذي تريد استخدامه متاحًا عبر الإنترنت (مثلًا على YouTube)، يمكنك إضافته إلى عرضك التقديمي عبر رابطه على الويب.
- إنشاء كائن من الفئة Presentation class
- الحصول على مرجع الشريحة عبر فهرستها.
- إضافة كائن IVideo وتمرير الرابط إلى الفيديو.
- تعيين صورة مصغرة لإطار الفيديو.
- حفظ العرض التقديمي.
يعرض لك هذا الكود C++ كيفية إضافة فيديو من الويب إلى شريحة في عرض PowerPoint التقديمي:
// مسار دليل المستندات.
const String outPath = u"../out/AddVideoFrameFromWebSource_out.pptx";
const String filePath = u"../templates/video1.avi";
// ينشئ كائن Presentation يمثل ملف عرض تقديمي
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// يصل إلى الشريحة الأولى
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// يضيف إطار فيديو
System::SharedPtr<IVideoFrame> vf = slide->get_Shapes()->AddVideoFrame(10, 10, 427, 240,u"https://www.youtube.com/embed/Tj75Arhq5ho");
// يحدد وضع تشغيل وحجم صوت الفيديو
vf->set_PlayMode(VideoPlayModePreset::Auto);
//يحفظ العرض التقديمي إلى القرص
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
استخراج فيديو من شريحة
بالإضافة إلى إضافة مقاطع فيديو إلى الشرائح، يتيح لك Aspose.Slides استخراج مقاطع الفيديو المدمجة في العروض التقديمية.
- إنشاء كائن من الفئة Presentation لتحميل العرض التقديمي الذي يحتوي على الفيديو.
- التكرار عبر جميع كائنات ISlide.
- التكرار عبر جميع كائنات IShape للعثور على VideoFrame.
- حفظ الفيديو على القرص.
يعرض لك هذا الكود C++ كيفية استخراج الفيديو من شريحة عرض تقديمي:
// مسار دليل المستندات.
const System::String templatePath = u"../templates/Video.pptx";
const System::String outPath = u"../out/Video_out";
auto presentation = System::MakeObject<Presentation>(templatePath);
for (auto&& slide : presentation->get_Slides())
{
for (auto&& shape : slide->get_Shapes())
{
if (System::ObjectExt::Is<VideoFrame>(shape))
{
System::SharedPtr<VideoFrame> vf = System::AsCast<VideoFrame>(shape);
System::String type = vf->get_EmbeddedVideo()->get_ContentType();
type = type.Remove(0, type.LastIndexOf('/') + 1);
auto buffer = vf->get_EmbeddedVideo()->get_BinaryData();
auto stream = System::MakeObject<System::IO::FileStream>(
outPath + type, System::IO::FileMode::Create, System::IO::FileAccess::Write,
System::IO::FileShare::Read);
stream->Write(buffer, 0, buffer->get_Length());
}
}
}
الأسئلة المتكررة
ما هي معلمات تشغيل الفيديو التي يمكن تغييرها لإطار الفيديو؟
يمكنك التحكم في وضع التشغيل (تلقائي أو عند النقر) والتكرار. هذه الخيارات متاحة عبر خصائص كائن VideoFrame.
هل يؤثر إضافة فيديو على حجم ملف PPTX؟
نعم. عندما تقوم بتضمين فيديو محلي، يتم تضمين البيانات الثنائية في المستند، وبالتالي يزداد حجم العرض التقديمي بنسبة حجم الملف. عندما تضيف فيديوًا عبر الإنترنت، يتم تضمين رابط وصورة مصغرة، لذا يكون الزيادة في الحجم أصغر.
هل يمكنني استبدال الفيديو في إطار فيديو موجود دون تغيير موضعه وحجمه؟
نعم. يمكنك استبدال محتوى الفيديو داخل الإطار مع الحفاظ على هندسة الشكل؛ هذا سيناريو شائع لتحديث الوسائط في تخطيط موجود.
هل يمكن تحديد نوع المحتوى (MIME) لفيديو مدمج؟
نعم. يحتوي الفيديو المدمج على نوع المحتوى الذي يمكنك قراءته واستخدامه، على سبيل المثال عند حفظه على القرص.