如果你没有找到任何解决方案,
您可以使用winmm的外部API函数“MCISendString”尝试一些VBA。dll。
需要注意的一点是,“fileToPlay”字符串中不能有任何空格字符。
您可以使用另一个名为OnSlideShowPageChange的函数来自动播放和恢复音频播放。
#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中,停止播放。
幻灯片放映结束后,停止播放。
如果是这样,只需在第一张幻灯片上插入任何Active-X控件,
这是一种已知的解决方法。)
https://msdn.microsoft.com/en-us/library/ms710815.aspx