2012-08-10 94 views
2

使用VSTO和PowerPoint 2010時,我試圖將音頻文件插入PowerPoint幻燈片並讓它在顯示幻燈片時自動播放。我能走到今天與下面的代碼:設置音頻在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; 

現在,在幻燈片已經有動畫(按效果對象表示)的要點。每個項目符號點都有一個Effect對象。我的加載項將它們從點擊觸發轉換爲自動運行。這是通過使用類似於以下代碼:

var effect = slide.TimeLine.MainSequence[1]; 
if (effect.Timing.TriggerType == PowerPoint.MsoAnimTriggerType.msoAnimTriggerOnPageClick) 
{ 
    effect.Timing.TriggerType = PowerPoint.MsoAnimTriggerType.msoAnimTriggerWithPrevious; 
    effect.Timing.TriggerDelayTime = delay; 
} 

與項目符號點的動畫的最終目標是使每個一個來延遲一定時間後分別顯示。

我的問題在於設置音頻形狀自動啓動。這會導致每個項目符號點的單獨效果對象被所有項目符號點的一個效果替換。所以,所有的要點都會立即顯示在屏幕上,而不是在它們之間延遲。先插入音頻或先修改子彈效果並不重要。

有一種方法可以將音頻設置爲自動播放而不會搞亂其他效果,因爲您可以在GUI中進行。誰能幫忙?提前致謝。

回答

1

(道歉,如果這是更適合作爲註釋 - 我沒有要添加這些但我也意識到了這個問題,現在相當過時的能力。)

我只是碰到了類似的問題:在設置任何PlaySettings屬性後,我的幻燈片上的所有退出動畫將被刪除,並且所有設置爲「With Previous」的動畫變爲「After Previous」。

我遇到了this link,這表明AnimationSettings對象是從舊版本的PowerPoint中保留下來的,並且可能會將新東西弄糟。更具體地講,

如果使用AnimationSettings對象在新版本設置任何動畫屬性,Microsoft PowerPoint中會刪除其未在早期版本中,從那些已經在幻燈片上設置動畫支持的所有動畫。

(約XP/2003聯繫洽談「新版本」,但這種行爲甚至在2013年似乎一致)

從本質上講,通過AnimationSettings.PlaySettings設置音頻設置觸發去除該間沒有動畫在舊版本的PowerPoint中不可用。不幸的是,似乎沒有另外一種方式。