ฝังวิดีโอในงานนำเสนอ PowerPoint โดยใช้ C ++

Microsoft PowerPoint ช่วยให้คุณสามารถเพิ่มเฟรมวิดีโอให้กับงานนำเสนอ PowerPoint ของคุณได้ วิดีโอสามารถใช้เพื่อปรับปรุงคุณภาพของงานนำเสนอและช่วยสื่อสารข้อความไปยังผู้ชมได้ดียิ่งขึ้น อาจมีบางสถานการณ์ที่คุณต้องการเพิ่มวิดีโอลงในงานนำเสนอ PowerPoint โดยทางโปรแกรม ด้วยเหตุนี้ บทความนี้จะสอนวิธีฝังวิดีโอในงานนำเสนอ PowerPoint โดยใช้ C++

C ++ API สำหรับการฝังวิดีโอในงานนำเสนอ PowerPoint

เราจะใช้ API Aposose.Slides สำหรับ C++ เพื่อฝังวิดีโอในงานนำเสนอ PowerPoint เป็น API ที่ทรงพลังและมีฟีเจอร์มากมายที่รองรับการสร้าง อ่าน และแก้ไขไฟล์ PowerPoint โดยไม่จำเป็นต้องติดตั้ง Mircosoft PowerPoint คุณสามารถติดตั้ง API ผ่าน NuGet หรือดาวน์โหลดโดยตรงจากส่วน ดาวน์โหลด

PM> Install-Package Aspose.Slides.Cpp

ฝังวิดีโอในงานนำเสนอ PowerPoint โดยใช้ C ++

ต่อไปนี้เป็นขั้นตอนในการฝังวิดีโอในงานนำเสนอ PowerPoint

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการฝังวิดีโอในงานนำเสนอ PowerPoint โดยใช้ C++

// เส้นทางไฟล์
const String videoFilePath = u"SourceDirectory\\Video\\Wildlife.mp4";
const String outputFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";

// สร้างอินสแตนซ์ของคลาสงานนำเสนอ
SharedPtr<Presentation> presentation = MakeObject<Presentation>();

// เข้าสู่สไลด์แรก
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// โหลดไฟล์วิดีโอเพื่อสตรีม
System::SharedPtr<System::IO::Stream> stream = System::MakeObject<System::IO::FileStream>(videoFilePath, System::IO::FileMode::Open, System::IO::FileAccess::Read);

// เพิ่มวิดีโอในงานนำเสนอ
System::SharedPtr<IVideo> vid = presentation->get_Videos()->AddVideo(stream);

// เพิ่มเฟรมวิดีโอ
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(50, 150, 300, 150, vid);

// ฝังวิดีโอภายในเฟรมวิดีโอ
videoFrame->set_EmbeddedVideo(vid);

// ตั้งค่าโหมดการเล่นและระดับเสียงของวิดีโอ
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);
videoFrame->set_Volume(AudioVolumeMode::Loud);

// บันทึกงานนำเสนอ
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

การฝังวิดีโอจากแหล่งที่มาของเว็บในงานนำเสนอ PowerPoint

ต่อไปนี้เป็นขั้นตอนในการฝังวิดีโอจากแหล่งที่มาของเว็บในงานนำเสนอ PowerPoint

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการฝังวิดีโอจากแหล่งที่มาของเว็บในงานนำเสนอ PowerPoint โดยใช้ C++

// เส้นทางไฟล์
const String outputFilePath = u"OutputDirectory\\EmbedVideoFromWeb_out.pptx";

// สร้างอินสแตนซ์ของคลาสงานนำเสนอ
SharedPtr<Presentation> presentation = MakeObject<Presentation>();

// เข้าสู่สไลด์แรก
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// เพิ่มเฟรมวิดีโอจากแหล่งที่มาของเว็บ
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(10, 10, 427, 240, u"https://www.youtube.com/embed/sZJorZmHiIk");

// ตั้งค่าโหมดการเล่นและระดับเสียงของวิดีโอ
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);

// บันทึกงานนำเสนอ
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

แยกวิดีโอจากงานนำเสนอ PowerPoint โดยใช้ C ++

ต่อไปนี้เป็นขั้นตอนในการแยกวิดีโอจากงานนำเสนอ PowerPoint โดยใช้ C++

  • ขั้นแรก ให้โหลดไฟล์ PowerPoint โดยใช้คลาส Presentation
  • วนซ้ำสไลด์ของงานนำเสนอ
  • วนซ้ำรูปร่างในแต่ละสไลด์
  • สำหรับแต่ละรูปร่าง ให้ตรวจสอบว่ารูปร่างนั้นเป็น VideoFrame หรือไม่ ในกรณีที่เป็นเฟรมวิดีโอ ให้แยกวิดีโอที่ฝังไว้และบันทึก

โค้ดตัวอย่างต่อไปนี้แสดงวิธีการแยกวิดีโอจากงานนำเสนอ PowerPoint โดยใช้ C++

// เส้นทางไฟล์
const String sourceFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";
const String outputFilePath = u"OutputDirectory\\ExtractVideoFromSlide_out.";

// โหลดไฟล์นำเสนอ
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(sourceFilePath);
{
	// วนรอบสไลด์
	auto slide_enumerator = (presentation->get_Slides())->GetEnumerator();
	decltype(slide_enumerator->get_Current()) slide;
	while (slide_enumerator->MoveNext() && (slide = slide_enumerator->get_Current(), true))
	{
		// วนรอบรูปร่าง
		auto shape_enumerator = (presentation->get_Slides()->idx_get(0)->get_Shapes())->GetEnumerator();
		decltype(shape_enumerator->get_Current()) shape;
		while (shape_enumerator->MoveNext() && (shape = shape_enumerator->get_Current(), true))
		{
			// ตรวจสอบว่ารูปร่างเป็นเฟรมวิดีโอหรือไม่
			if (System::ObjectExt::Is<VideoFrame>(shape))
			{
				// แยกไฟล์วิดีโอ
				System::SharedPtr<VideoFrame> vf = System::DynamicCast_noexcept<Aspose::Slides::VideoFrame>(shape);
				System::String type = vf->get_EmbeddedVideo()->get_ContentType();
				int32_t ss = type.LastIndexOf(L'/');
				type = type.Remove(0, type.LastIndexOf(L'/') + 1);
				System::ArrayPtr<uint8_t> buffer = vf->get_EmbeddedVideo()->get_BinaryData();
				{
					System::SharedPtr<System::IO::FileStream> stream = System::MakeObject<System::IO::FileStream>(outputFilePath + type, System::IO::FileMode::Create, System::IO::FileAccess::Write, System::IO::FileShare::Read);

					// การล้างทรัพยากรภายใต้คำสั่ง 'ใช้'
					//ระบบ::รายละเอียด::DisposeGuard __dispose_guard_0{ สตรีม, ASPOSE_CURRENT_FUNCTION };
					// ------------------------------------------
					stream->Write(buffer, 0, buffer->get_Length());
				}
			}
		}
	}
}

รับใบอนุญาตฟรี

หากต้องการลองใช้ API โดยไม่มีข้อจำกัดในการประเมิน คุณสามารถขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีการฝังวิดีโอในงานนำเสนอ PowerPoint โดยใช้ C++ นอกจากนี้ คุณได้เห็นวิธีแยกวิดีโอที่ฝังออกจากงานนำเสนอ PowerPoint โดยใช้ Aspose.Slides for C++ API เป็น API ที่มีประสิทธิภาพซึ่งมีคุณสมบัติเพิ่มเติมมากมายสำหรับการทำงานกับไฟล์ PowerPoint คุณสามารถสำรวจ API โดยละเอียดได้โดยไปที่ เอกสารอย่างเป็นทางการ ในกรณีที่มีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี

ดูสิ่งนี้ด้วย

เคล็ดลับ: คุณอาจต้องการลองใช้ตัวแปลง Aspose PowerPoint เป็นวิดีโอ ฟรี เพราะมันช่วยให้คุณแปลงงานนำเสนอของคุณเป็นวิดีโอที่น่าทึ่งพร้อมเอฟเฟกต์การเปลี่ยนภาพ