音频帧

创建音频帧

Aspose.Slides for C++ 允许您将音频文件添加到幻灯片中。音频文件作为音频帧嵌入幻灯片中。

  1. 创建 Presentation 类的实例。
  2. 通过索引获取幻灯片的引用。
  3. 加载您想要嵌入幻灯片中的音频文件流。
  4. 将嵌入的音频帧(包含音频文件)添加到幻灯片。
  5. 设置 PlayModeIAudioFrame 对象暴露的 Volume
  6. 保存修改后的演示文稿。

以下 C++ 代码演示如何将嵌入的音频帧添加到幻灯片中:

// 实例化表示演示文稿文件的 Presentation 类
auto pres = System::MakeObject<Presentation>();

// 获取第一张幻灯片
auto sld = pres->get_Slides()->idx_get(0);

// 加载 wav 音频文件到流
auto fstr = System::MakeObject<FileStream>(u"sampleaudio.wav", FileMode::Open, FileAccess::Read);

// 添加音频帧
auto audioFrame = sld->get_Shapes()->AddAudioFrameEmbedded(50.0f, 150.0f, 100.0f, 100.0f, fstr);

// 设置音频的播放模式和音量
audioFrame->set_PlayMode(AudioPlayModePreset::Auto);
audioFrame->set_Volume(AudioVolumeMode::Loud);

// 将 PowerPoint 文件写入磁盘
pres->Save(u"AudioFrameEmbed_out.pptx", SaveFormat::Pptx);

更改音频帧缩略图

当您向演示文稿添加音频文件时,音频会显示为带有标准默认图像的框架(请参见下面部分的图像)。您可以更改音频帧的缩略图(设置您喜欢的图像)。

以下 C++ 代码演示如何更改音频帧的缩略图或预览图像:

auto presentation = System::MakeObject<Presentation>();
        
auto slide = presentation->get_Slides()->idx_get(0);
        
// 在指定位置和大小的幻灯片上添加音频帧。
auto audioStream = System::MakeObject<System::IO::FileStream>(u"sample2.mp3", 
    System::IO::FileMode::Open, System::IO::FileAccess::Read);
    
auto audioFrame = slide->get_Shapes()->AddAudioFrameEmbedded(150.0f, 100.0f, 50.0f, 50.0f, audioStream);
            
// 将图像添加到演示文稿资源。
auto imageStream = System::IO::File::OpenRead(u"eagle.jpeg");
auto audioImage = presentation->get_Images()->AddImage(imageStream);
            
// 设置音频帧的图像。
audioFrame->get_PictureFormat()->get_Picture()->set_Image(audioImage); // <-----
        
// 将修改后的演示文稿保存到磁盘
presentation->Save(u"example_out.pptx", Aspose::Slides::Export::SaveFormat::Pptx);

更改音频播放选项

Aspose.Slides for C++ 允许您更改控制音频播放或属性的选项。例如,您可以调整音频音量、设置音频循环播放,甚至隐藏音频图标。

Microsoft PowerPoint 中的 音频选项 面板:

example1_image

与 Aspose.Slides AudioFrame 方法对应的 PowerPoint 音频选项:

以下是如何更改音频播放选项:

  1. 创建 或获取音频帧。
  2. 为您希望调整的音频帧属性设置新值。
  3. 保存修改后的 PowerPoint 文件。

以下 C++ 代码演示了一项操作,其中调整了音频的选项:

auto pres = System::MakeObject<Presentation>(u"AudioFrameEmbed_out.pptx");

// 获取形状
auto shape = pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0);

// 将形状转换为 AudioFrame 形状
auto audioFrame = System::ExplicitCast<AudioFrame>(shape);

// 将播放模式设置为单击播放
audioFrame->set_PlayMode(AudioPlayModePreset::OnClick);

// 将音量设置为低
audioFrame->set_Volume(AudioVolumeMode::Low);

// 设置音频跨幻灯片播放
audioFrame->set_PlayAcrossSlides(true);

// 禁用音频循环
audioFrame->set_PlayLoopMode(false);

// 在幻灯片放映期间隐藏音频帧
audioFrame->set_HideAtShowing(true);

// 播放后将音频回放到开始
audioFrame->set_RewindAudio(true);

// 将 PowerPoint 文件保存到磁盘
pres->Save(u"AudioFrameEmbed_changed.pptx", SaveFormat::Pptx);

提取音频

Aspose.Slides for .NET 允许您提取用于幻灯片放映过渡的声音。例如,您可以提取在特定幻灯片中使用的声音。

  1. 创建 Presentation 类的实例并加载包含音频的演示文稿。
  2. 通过索引获取相关幻灯片的引用。
  3. 访问幻灯片的幻灯片放映过渡。
  4. 提取以字节数据表示的声音。

以下 C++ 代码演示如何提取幻灯片中使用的音频:

String presName = u"AudioSlide.pptx";

// 实例化表示演示文稿文件的 Presentation 类
auto pres = System::MakeObject<Presentation>(presName);

// 访问所需的幻灯片
auto slide = pres->get_Slides()->idx_get(0);

// 获取幻灯片的放映转换特效
auto transition = slide->get_SlideShowTransition();

// 提取以字节数组表示的声音
auto audio = transition->get_Sound()->get_BinaryData();

Console::WriteLine(String(u"长度: ") + audio->get_Length());