Воспроизведение звука без прерывания других воспроизводимых звуков (VBA)

#vba #audio #powerpoint

#vba #Аудио #powerpoint

Вопрос:

У меня есть код, который может воспроизводить звук в презентации PowerPoint, но если я заставлю его воспроизводить 2 звука один за другим, первый остановится, а второй будет воспроизводиться. Таким образом, первый звук был прерван вторым звуком.

Я пытался экспериментировать с разными флагами, но ни один из них не соответствует тому, чего я хочу достичь. В настоящее время я использую флаг SND_ASYNC.

Вот текущий код (в модуле):

 #If VBA7 Then
Public Declare PtrSafe Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
#Else
Public Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
#End If

Sub playSound(SoundFile As String)
sndPlaySound32 SoundFile, SND_ASYNC
End Sub
 

Я хочу иметь версию кода, которая воспроизводит звук и останавливает его только по завершении и не прерывается другим звуком.

Комментарии:

1. Попробуйте WMPlayer. OCX

2. Как мне это сделать?

3. Попробуйте примеры по ссылке, которую я предоставил. Опубликуйте код, если вы застряли.

4. Я пытался Set Wmp = CreateObject("WMPlayer.OCX.7") , но он возвращает ошибку «Ошибка автоматизации».

5. Попробуйте CreateObject("WMPlayer.OCX")