音频帧
Contents
 [
      
        Hide
      ]
    创建音频帧
Aspose.Slides for PHP via Java 允许您将音频文件添加到幻灯片中。音频文件以音频帧的形式嵌入到幻灯片中。
- 创建一个 Presentation 类的实例。
- 通过索引获取幻灯片的引用。
- 加载要嵌入幻灯片的音频文件流。
- 将嵌入的音频帧(包含音频文件)添加到幻灯片中。
- 设置 PlayMode 和 IAudioFrame 对象公开的 Volume。
- 保存修改后的演示文稿。
以下 PHP 代码展示了如何将嵌入的音频帧添加到幻灯片中:
// 实例化代表演示文稿文件的 Presentation 类
  $pres = new Presentation();
  try {
    # 获取第一张幻灯片
    $sld = $pres->getSlides()->get_Item(0);
    # 加载 wav 音频文件流
    $fstr = new Java("java.io.FileInputStream", new Java("java.io.File", "audio.wav"));
    # 添加音频帧
    $audioFrame = $sld->getShapes()->addAudioFrameEmbedded(50, 150, 100, 100, $fstr);
    $fstr->close();
    # 设置音频的播放模式和音量
    $audioFrame->setPlayMode(AudioPlayModePreset->Auto);
    $audioFrame->setVolume(AudioVolumeMode->Loud);
    # 将 PowerPoint 文件写入磁盘
    $pres->save("AudioFrameEmbed_out.pptx", SaveFormat::Pptx);
} catch(JavaException e) {
} finally {
    if (!java_is_null($pres)) $pres->dispose();
}
更改音频帧缩略图
当您将音频文件添加到演示文稿时,音频会作为具有标准默认图像的框架出现(请参阅以下部分中的图像)。您可以更改音频帧的预览图像(设置您喜欢的图像)。
以下 PHP 代码展示了如何更改音频帧的缩略图或预览图像:
  $presentation = new Presentation();
  try {
    $slide = $presentation->getSlides()->get_Item(0);
    # 在幻灯片上添加具有指定位置和大小的音频帧。
    $audioStream = new Java("java.io.FileInputStream", "sample2.mp3");
    $audioFrame = $slide->getShapes()->addAudioFrameEmbedded(150, 100, 50, 50, $audioStream);
    $audioStream->close();
    # 向演示文稿资源添加图像。
    $picture;
    $image = Images->fromFile("eagle.jpeg");
    try {
      $picture = $presentation->getImages()->addImage($image);
    } finally {
      if (!java_is_null($image)) {
        $image->dispose();
      }
    }
    # 为音频帧设置图像。
    $audioFrame->getPictureFormat()->getPicture()->setImage($picture);// <-----
    # 将修改后的演示文稿保存到磁盘
    $presentation->save("example_out.pptx", SaveFormat::Pptx);
  } catch (JavaException $e) {
  } finally {
    if (!java_is_null($presentation)) {
      $presentation->dispose();
    }
  }
更改音频播放选项
Aspose.Slides for PHP via Java 允许您更改控制音频播放或属性的选项。例如,您可以调整音频的音量、设置音频循环播放,甚至隐藏音频图标。
Microsoft PowerPoint 中的 音频选项 面板:

与 Aspose.Slides AudioFrame 属性相对应的 PowerPoint 音频选项:
- 音频选项 开始 下拉列表与 AudioFrame.PlayMode 属性相匹配
- 音频选项 音量 与 AudioFrame.Volume 属性相匹配
- 音频选项 跨幻灯片播放 与 AudioFrame.PlayAcrossSlides 属性相匹配
- 音频选项 循环播放直到停止 与 AudioFrame.PlayLoopMode 属性相匹配
- 音频选项 在放映期间隐藏 与 AudioFrame.HideAtShowing 属性相匹配
- 音频选项 播放后倒带 与 AudioFrame.RewindAudio 属性相匹配
以下是如何更改音频播放选项:
- 创建 或获取音频帧。
- 为要调整的音频帧属性设置新值。
- 保存修改后的 PowerPoint 文件。
以下 PHP 代码演示了如何调整音频选项的操作:
  $pres = new Presentation("AudioFrameEmbed_out.pptx");
  try {
    # 获取音频帧形状
    $audioFrame = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
    # 将播放模式设置为点击播放
    $audioFrame->setPlayMode(AudioPlayModePreset->OnClick);
    # 将音量设置为低
    $audioFrame->setVolume(AudioVolumeMode->Low);
    # 设置音频跨幻灯片播放
    $audioFrame->setPlayAcrossSlides(true);
    # 禁用音频的循环
    $audioFrame->setPlayLoopMode(false);
    # 在幻灯片放映期间隐藏音频帧
    $audioFrame->setHideAtShowing(true);
    # 在播放后倒带音频
    $audioFrame->setRewindAudio(true);
    # 将 PowerPoint 文件保存到磁盘
    $pres->save("AudioFrameEmbed_changed.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }
提取音频
Aspose.Slides for PHP via Java 允许您提取用于幻灯片放映过渡的声音。例如,您可以提取特定幻灯片使用的声音。
- 创建一个 Presentation 类的实例并加载包含音频的演示文稿。
- 通过索引获取相关幻灯片的引用。
- 访问该幻灯片的 幻灯片放映过渡。
- 提取字节数据中的声音。
以下代码展示了如何提取幻灯片中使用的音频:
  # 实例化代表演示文稿文件的 Presentation 类
  $pres = new Presentation("AudioSlide.pptx");
  $Array = new java_class("java.lang.reflect.Array");
  try {
    # 访问所需的幻灯片
    $slide = $pres->getSlides()->get_Item(0);
    # 获取幻灯片的幻灯片放映过渡效果
    $transition = $slide->getSlideShowTransition();
    # 提取字节数组中的声音
    $audio = $transition->getSound()->getBinaryData();
    echo("长度: " . $Array->getLength($audio));
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }