首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅在PowerPoint幻灯片放映中的某些幻灯片上自动暂停播放声音

仅在PowerPoint幻灯片放映中的某些幻灯片上自动暂停播放声音
EN

Stack Overflow用户
提问于 2017-11-17 09:14:25
回答 2查看 4K关注 0票数 0

我有一个PowerPoint 2013年幻灯片显示自动前进幻灯片和背景音乐。一些幻灯片是视频,我希望音乐暂停在这样的幻灯片,并自动恢复后。我只能在一定数量的幻灯片之后才能找到如何使音乐停止,但却找不到关于暂停/恢复的任何内容。这可以通过菜单来完成吗,还是只可以通过VBA完成?

非常感谢。伊利亚

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-09 04:11:46

如果您没有找到任何解决方案,可以使用"MCISendString“(来自winmm.dll的外部API函数)尝试一些VBA。

需要注意的一点是,“fileToPlay”字符串中不可能有任何空格字符。您可以使用另一个名为OnSlideShowPageChange的函数自动播放和恢复音频播放。

代码语言:javascript
运行
复制
#If VBA7 Then
    Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias _
    "mciSendStringA" (ByVal lpstrCommand As String, ByVal _
    lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
#Else
    Declare Function mciSendString Lib "winmm.dll" Alias _
    "mciSendStringA" (ByVal lpstrCommand As String, ByVal _
    lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

#End If

Sub OnSlideShowPageChange(SSW As SlideShowWindow)

    Dim fileToPlay As String
    Dim MCIAudio As Long

    fileToPlay = Chr(34) & ActivePresentation.Path & "\test.mp3" & Chr(34)

    Select Case SSW.View.CurrentShowPosition
        Case 1:
            'first, close the previous playing and open new and play
            MCIPlay = mciSendString("close MyAudio", Nothing, 0, 0)
            MCIAudio = mciSendString("open " & fileToPlay & " alias MyAudio", Nothing, 0, 0)
            MCIAudio = mciSendString("play MyAudio", Nothing, 0, 0)
        Case 2:
            MCIAudio = mciSendString("pause MyAudio", Nothing, 0, 0)
        Case 3:
            MCIAudio = mciSendString("resume MyAudio", Nothing, 0, 0)
        Case 4:
            MCIAudio = mciSendString("stop MyAudio", Nothing, 0, 0)
    End Select
End Sub

Sub OnSlideShowTerminate()
    Dim MCIAudio As Long

    MCIAudio = mciSendString("stop MyAudio", Nothing, 0, 0)
    MCIAudio = mciSendString("close MyAudio", Nothing, 0, 0)
End Sub

在本例中,在幻灯片1上,开始播放。在幻灯片2,暂停播放。在幻灯片3,继续播放。在幻灯片4,停止播放。当幻灯片放映结束时,停止播放。

(你知道,OnSlideShowPageChange有时无法发起。如果是这样的话,只需在第一个幻灯片上插入任何Active-X控件,这是一个已知的解决方法。)

在这里可以找到其他MCISendString命令:https://msdn.microsoft.com/en-us/library/ms710815.aspx

票数 1
EN

Stack Overflow用户

发布于 2017-11-17 09:58:31

您可以查看此链接以获得对您的问题的更多答案。

您应该能够在没有代码的情况下做到这一点。电源点>过渡选项卡>声音:停止先前的声音。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47346990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档