我想将预先录制的 mp3 添加到演示幻灯片中,并在幻灯片显示时播放。这是我的代码,但它根本不播放音频。如何使用 OpenXML 并将音频文件添加到演示文稿中?
public void AddVideoToPresentation(PresentationDocument presentationDocument, string audioFilePath)
{
int PicID = 915;
PresentationPart presentationPart = presentationDocument.PresentationPart;
var slideCount = presentationPart.Presentation.SlideIdList.Count();
var videoEmbedId = string.Format("audioId{0}{1}", slideCount, PicID++);
var mediaEmbedId = string.Format("medId{0}{1}", slideCount, PicID++);
SlidePart slidepart = presentationDocument.PresentationPart.SlideParts.LastOrDefault();
MediaDataPart mediaDataPart1 = presentationDocument.CreateMediaDataPart("audio/mp3", "mp3");
System.IO.Stream mediaDataPart1Stream = File.OpenRead(audioFilePath);
mediaDataPart1.FeedData(mediaDataPart1Stream);
mediaDataPart1Stream.Close();
slidepart.AddAudioReferenceRelationship(mediaDataPart1, videoEmbedId);
slidepart.AddMediaReferenceRelationship(mediaDataPart1, mediaEmbedId);
slidepart.Slide.Save();
}
这相当复杂,因为它涉及动画时间轴。
您通常解决这个问题的方法是创建一个具有您想要的单个功能的单个幻灯片(例如插入音频,然后在“播放”选项卡中将其设置为自动播放)。然后将其放入 OpenXML SDK Productivity Tool 中(从 https://github.com/dotnet/Open-XML-SDK 获取)。然后添加简单的牌组,并让该工具将您的牌组反映为 C# 代码。