我想添加音频的书签,并将它们与定时对象的VBA属性相关联。
要添加书签,此函数执行以下工作:
Function AddBookMark(ByRef MediaObject As Shape, ByVal PositionInMs As Long, ByVal BookMarkName As String) As MediaBookmark
Dim Result As MediaBookmark
With MediaObject
Set Result = .MediaFormat.MediaBookmarks.Add(Position:=PositionInMs, name:=BookMarkName)
End With
Set AddBookMark = Result
End Function
下面的代码
动画作品,但我想启动基于创建书签的运动效果。这两个注释行不起作用。SomeOne明白为什么吗?
Sub SetBookMarkAsTriggerTest()
FileName = "C:\path\to\your.mp3"
Dim Slide As Slide
Dim MediaObject As Shape
Dim AnimatedShape As Shape
Dim FirstBookMark As MediaBookmark
Dim SecondBookMark As MediaBookmark
Dim FirstEffect As Effect
Dim SecondEffect As Effect
Dim Behaviour As AnimationBehavior
Set Slide = ActivePresentation.Slides(1)
Set MediaObject = Slide.shapes.AddMediaObject2(FileName, msoTrue,_
msoTrue, 50, 50)
MediaObject.name = "MediaOBject1"
Set FirstBookMark = AddBookMark(MediaObject, 5000, "bm1")
Set SecondBookMark = AddBookMark(MediaObject, 7000, "bm2")
Set AnimatedShape = Slide.shapes.addShape(msoShapeRectangle, _
0, 0, 100, 50)
Set FirstEffect = Slide.TimeLine.MainSequence.AddEffect(Shape:=AnimatedShape, _
EffectId:=msoAnimEffectFade, Trigger:=msoAnimTriggerAfterPrevious)
FirstEffect.Timing.Duration = 10
Set Behaviour = FirstEffect.Behaviors.Add(msoAnimTypeMotion)
With Behaviour
With .motionEffect
.FromX = 0
.FromX = 0
.ToX = 50
.ToY = 50
End With
With .Timing
.Duration = 2
'this line does not work...why ?
'.TriggerType = msoAnimTriggerOnMediaBookmark
'this line does not work neither...why ?
'.TriggerBookmark = "bm1"
End With
End With
End Sub
非常感谢!
发布于 2021-03-12 14:31:11
通过使用InteractiveSequences,我成功地做到了我想做的事情。然后,我们可以使用基于书签的AddTriggerEffect方法添加触发器效果,如下所示:
Function AddBookMark(ByRef MediaObject As Shape, ByVal PositionInMs As Long, ByVal BookMarkName As String) As MediaBookmark
Dim result As MediaBookmark
With MediaObject
Set result = .MediaFormat.MediaBookmarks.Add(Position:=PositionInMs, Name:=BookMarkName)
End With
Set AddBookMark = result
End Function
Sub SetBookMarkAsTriggerTest()
fileName = "C:\path\to\your.mp3"
Dim Slide As Slide
Dim MediaObject As Shape
Dim AnimatedShape As Shape
Dim FirstBookMark As MediaBookmark
Dim FirstEffect As effect
Dim Behaviour As AnimationBehavior
Set Slide = ActivePresentation.Slides(1)
Set MediaObject = Slide.shapes.AddMediaObject2(fileName, msoTrue, _
msoTrue, 50, 50)
MediaObject.Name = "MediaOBject1"
Set FirstBookMark = AddBookMark(MediaObject, 5000, "bm1")
Set AnimatedShape = Slide.shapes.AddShape(msoShapeRectangle, _
0, 0, 100, 50)
Dim Sequence As Sequence: Set Sequence = Slide.TimeLine.InteractiveSequences.Add(1)
Set FirstEffect = Sequence.AddTriggerEffect(pShape:=AnimatedShape, effectId:=msoAnimEffectAppear, _
trigger:=msoAnimTriggerOnMediaBookmark, pTriggerShape:=MediaObject, BookMark:="bm1")
End Sub
https://stackoverflow.com/questions/66365708
复制相似问题