Прекратить воспроизведение звуковых файлов при нажатии - PullRequest
1 голос
/ 08 мая 2020

Я хочу добавить две звуковые формы к слайду PowerPoint, обе срабатывают по щелчку, используя PowerPoint VBA (Microsoft 365 MSO).

Временная шкала слайда будет:

  1. Первый щелчок запускает воспроизведение звука
  2. Второй щелчок останавливает первый звук и запускает второй.

Я могу разместить звуковые формы и добавить объекты анимации, чтобы запускать звуки.

Я не могу найти свойство объекта эффекта, которое воспроизводит параметр GUI для остановки воспроизведения при нажатии. GUI возможность остановить воспроизведение при нажатии

Код добавит новый слайд, создаст две звуковые формы и заставит их срабатывать при щелчке, однако звук 1 не перестает воспроизводиться.

Sub TestSoundTrigger()

    Dim slTestSoundSlide As Slide
    Dim shSoundShape1 As Shape
    Dim shSoundShape2 As Shape
    Dim efSoundShape1 As Effect
    Dim efSoundShape2 As Effect

' Create the slide
    Set slTestSoundSlide = ActivePresentation.Slides.AddSlide(ActivePresentation.Slides.Count + 1, ActivePresentation.Designs(1).SlideMaster.CustomLayouts(1))

' Add 2 sound shapes
    Set shSoundShape1 = slTestSoundSlide.Shapes.AddMediaObject2(ActivePresentation.Path & "\testsound1.mp3", True, False, 10, 10)
    Set shSoundShape2 = slTestSoundSlide.Shapes.AddMediaObject2(ActivePresentation.Path & "\testsound2.mp3", True, False, 10, 10)
    
' Add the 2 triggers to play the sounds on click in turn
    Set efSoundShape1 = slTestSoundSlide.TimeLine.MainSequence.AddEffect(shSoundShape1, effectId:=msoAnimEffectMediaPlay)
    Set efSoundShape2 = slTestSoundSlide.TimeLine.MainSequence.AddEffect(shSoundShape2, effectId:=msoAnimEffectMediaPlay)

End Sub

Я проверил Эффект и свойства объекта Timeline, но я не могу найти его.

1 Ответ

1 голос
/ 13 мая 2020

Я нашел это свойство: ppSoundStopPrevious ppSoundEffectType

В качестве альтернативы вы можете установить другой msoAnimEffectMediaStop - но это создаст еще один шаг анимации

    Sub TestSoundTrigger()

    Dim slTestSoundSlide As Slide
    Dim shSoundShape1 As Shape
    Dim shSoundShape2 As Shape
    Dim efSoundShape1 As Effect
    Dim efSoundShape2 As Effect

' Create the slide
    Set slTestSoundSlide = ActivePresentation.Slides.AddSlide(ActivePresentation.Slides.Count + 1, ActivePresentation.Designs(1).SlideMaster.CustomLayouts(1))

' Add 2 sound shapes
    Set shSoundShape1 = slTestSoundSlide.Shapes.AddMediaObject2(ActivePresentation.Path & "\testsound1.mp3", True, False, 10, 10)
    Set shSoundShape2 = slTestSoundSlide.Shapes.AddMediaObject2(ActivePresentation.Path & "\testsound2.mp3", True, False, 10, 10)

' Add the 2 triggers to play the sounds on click in turn
    Set efSoundShape1 = slTestSoundSlide.TimeLine.MainSequence.AddEffect(shSoundShape1, effectId:=msoAnimEffectMediaPlay)
    Set efSoundShape1 = slTestSoundSlide.TimeLine.MainSequence.AddEffect(shSoundShape1, effectId:=msoAnimEffectMediaStop)
    Set efSoundShape2 = slTestSoundSlide.TimeLine.MainSequence.AddEffect(shSoundShape2, effectId:=msoAnimEffectMediaPlay)

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...