Nhúng Video vào Bản trình bày PowerPoint bằng C ++

Microsoft PowerPoint cung cấp cho bạn khả năng thêm khung video vào bản trình bày PowerPoint của bạn. Video có thể được sử dụng để nâng cao chất lượng của các bài thuyết trình và giúp truyền tải thông điệp đến khán giả tốt hơn. Có thể có những trường hợp bạn muốn thêm video vào bản trình bày PowerPoint theo chương trình. Để đạt được điều đó, bài viết này sẽ hướng dẫn bạn cách nhúng video vào bản trình bày PowerPoint bằng C ++.

API C ++ để nhúng video vào bản trình bày PowerPoint

Chúng tôi sẽ sử dụng API Aspose.Slides for C ++ để nhúng video vào bản trình bày PowerPoint. Đây là một API mạnh mẽ và giàu tính năng hỗ trợ tạo, đọc và sửa đổi các tệp PowerPoint mà không cần cài đặt Mircosoft PowerPoint. Bạn có thể cài đặt API thông qua NuGet hoặc tải xuống trực tiếp từ phần Tải xuống.

PM> Install-Package Aspose.Slides.Cpp

Nhúng Video vào Bản trình bày PowerPoint bằng C ++

Sau đây là các bước để nhúng video vào bản trình bày PowerPoint.

Mã mẫu sau đây cho biết cách nhúng video vào bản trình bày PowerPoint bằng C ++.

// Đường dẫn tệp
const String videoFilePath = u"SourceDirectory\\Video\\Wildlife.mp4";
const String outputFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";

// Tạo một phiên bản của lớp Trình bày
SharedPtr<Presentation> presentation = MakeObject<Presentation>();

// Truy cập trang trình bày đầu tiên
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Tải tệp video để phát trực tiếp
System::SharedPtr<System::IO::Stream> stream = System::MakeObject<System::IO::FileStream>(videoFilePath, System::IO::FileMode::Open, System::IO::FileAccess::Read);

// Thêm video vào bản trình bày
System::SharedPtr<IVideo> vid = presentation->get_Videos()->AddVideo(stream);

// Thêm khung video
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(50, 150, 300, 150, vid);

// Nhúng video vào trong khung video
videoFrame->set_EmbeddedVideo(vid);

// Đặt chế độ phát và âm lượng của video
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);
videoFrame->set_Volume(AudioVolumeMode::Loud);

// Lưu bản trình bày
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Nhúng Video từ Nguồn Web vào Bản trình bày PowerPoint

Sau đây là các bước để nhúng video từ nguồn web vào bản trình bày PowerPoint.

Mã mẫu sau đây cho biết cách nhúng video từ nguồn web vào bản trình bày PowerPoint bằng C ++.

// Đường dẫn tập tin
const String outputFilePath = u"OutputDirectory\\EmbedVideoFromWeb_out.pptx";

// Tạo một phiên bản của lớp Trình bày
SharedPtr<Presentation> presentation = MakeObject<Presentation>();

// Truy cập trang trình bày đầu tiên
SharedPtr<ISlide> slide = presentation->get_Slides()->idx_get(0);

// Thêm khung video từ nguồn web
System::SharedPtr<IVideoFrame> videoFrame = slide->get_Shapes()->AddVideoFrame(10, 10, 427, 240, u"https://www.youtube.com/embed/sZJorZmHiIk");

// Đặt chế độ phát và âm lượng của video
videoFrame->set_PlayMode(VideoPlayModePreset::Auto);

// Lưu bản trình bày
presentation->Save(outputFilePath, Aspose::Slides::Export::SaveFormat::Pptx);

Trích xuất Video từ Bản trình bày PowerPoint bằng C ++

Sau đây là các bước để trích xuất video từ bản trình bày PowerPoint bằng C ++.

  • Trước hết, tải tệp PowerPoint bằng lớp Trình bày.
  • Lặp qua các trang trình bày.
  • Lặp qua các hình dạng trong mỗi trang chiếu.
  • Đối với mỗi hình dạng, hãy kiểm tra xem hình dạng đó có phải là VideoFrame hay không. Trong trường hợp đó là một khung video, hãy trích xuất video nhúng và lưu nó.

Đoạn mã mẫu sau đây cho biết cách trích xuất video từ bản trình bày PowerPoint bằng C ++.

// Đường dẫn tệp
const String sourceFilePath = u"OutputDirectory\\EmbedVideo_out.pptx";
const String outputFilePath = u"OutputDirectory\\ExtractVideoFromSlide_out.";

// Tải tệp bản trình bày
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(sourceFilePath);
{
	// Lặp qua các trang trình bày
	auto slide_enumerator = (presentation->get_Slides())->GetEnumerator();
	decltype(slide_enumerator->get_Current()) slide;
	while (slide_enumerator->MoveNext() && (slide = slide_enumerator->get_Current(), true))
	{
		// Lặp qua các hình dạng
		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))
		{
			// Kiểm tra xem hình dạng có phải là khung video không
			if (System::ObjectExt::Is<VideoFrame>(shape))
			{
				// Giải nén tệp video
				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);

					// Xóa tài nguyên trong câu lệnh 'using'
					//Hệ thống :: Chi tiết :: DisposeGuard __dispose_guard_0 {stream, ASPOSE_CURRENT_FUNCTION};
					// ------------------------------------------
					stream->Write(buffer, 0, buffer->get_Length());
				}
			}
		}
	}
}

Nhận giấy phép miễn phí

Để dùng thử API mà không có giới hạn đánh giá, bạn có thể yêu cầu giấy phép tạm thời miễn phí.

Sự kết luận

Trong bài này, bạn đã học cách nhúng video vào bản trình bày PowerPoint bằng C ++. Hơn nữa, bạn đã thấy cách trích xuất video nhúng từ các bản trình bày PowerPoint bằng cách sử dụng API Aspose.Slides cho C ++. Đây là một API mạnh mẽ cung cấp nhiều tính năng bổ sung để làm việc với các tệp PowerPoint. Bạn có thể khám phá API chi tiết bằng cách truy cập tài liệu chính thức. Trong trường hợp có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi tại diễn đàn hỗ trợ miễn phí của chúng tôi.

Xem thêm

Mẹo: Bạn có thể muốn xem trình chuyển đổi PowerPoint to Video của Aspose MIỄN PHÍ vì nó cho phép bạn chuyển đổi bản trình bày của mình thành video tuyệt đẹp với các hiệu ứng chuyển tiếp.