使用VSTO和PowerPoint 2010,我尝试将音频文件插入PowerPoint幻灯片,并在显示幻灯片时自动播放。我用下面的代码得到了这个:
var presentation = Gobals.ThisAddIn.Application.ActivePresentation;
var slide = presentation.Slides[1];
var audioShape = slide.Shapes.AddMediaObject2( audioFilePath );
var audioShape.AnimationSettings.PlaySettings.PlayOnEntry = Microsoft.Office.Core.MsoTriState.msoTrue;
现在,在幻灯片中已经有针对项目符号的动画(由效果对象表示)。每个项目符号都有一个效果对象。我的加载项将它们从单击触发转换为自动运行。这是通过类似于以下代码完成的:
var effect = slide.TimeLine.MainSequence[1];
if ( effect.Timing.TriggerType == PowerPoint.MsoAnimTriggerType.msoAnimTriggerOnPageClick )
{
effect.Timing.TriggerType = PowerPoint.MsoAnimTriggerType.msoAnimTriggerWithPrevious;
effect.Timing.TriggerDelayTime = delay;
}
子弹点动画的最终目标是在一定延迟后单独显示每个动画。
我的问题在于将音频形状设置为自动启动。这会导致每个项目符号点的单独效果对象被所有项目符号点的一个效果替换。因此,所有的项目符号点都会立即显示在屏幕上,而不是在它们之间延迟。如果我先插入音频或首先修改子弹效果,这无关紧要。
必须有一种方法可以将音频设置为自动播放而不会弄乱其他效果,因为您可以在GUI中执行此操作。有人可以帮忙吗?提前谢谢。
答案 0 :(得分:1)
(道歉,如果这更适合作为评论 - 我还没有能力添加这些。我也意识到这个问题现在已经过时了。)
我遇到了类似的问题:在设置任何PlaySettings
属性后,我的幻灯片上的所有退出动画都将被删除,而所有设置为“With Previous”的动画都会变为“After Previous”。
我遇到了this link,这表示AnimationSettings
对象是旧版PowerPoint的延续,并且可能会在较新的版本中搞砸。更具体地说,
如果您使用新版本中的AnimationSettings对象设置任何动画属性,Microsoft PowerPoint将从幻灯片中已设置的动画中删除早期版本中不支持的所有动画。
(该链接将XP / 2003称为“新版本”,但即使在2013年,这种行为似乎也是一致的。)
基本上,通过AnimationSettings.PlaySettings
设置音频设置会触发删除旧版PowerPoint中不可用的动画。不幸的是,似乎没有其他方法可以这样做。