Тема: VBScript: воспроизведение аудио
Пример показывает возможность воспроизведения произвольных аудио-файлов в скриптах с использованием COM-объекта "WMPlayer.OCX" (Windows Media Player). Демонстрируется регулирование баланса и громкости, определение длины записи в секундах. Обратите внимание, что в целом объект обладает значительно большим функционалом (плейлисты, настройка частоты, настройка скорости проигрывания и т.п.), чем показано в этом примере.
Set WMPlayer = New WMPlayerClass
Dim FilePath
'/// Так же можно указать URl - ссылку на файл в интернете
FilePath = "C:\WINDOWS\Media\chimes.wav"
'/// Открываем ресурс
WMPlayer.OpenMedia FilePath
'/// Выводим длительность файла
msgbox "Длительность файла: " & WMPlayer.CurrentMedia.DurationString,vbInformation,"WMPlayerClass"
'/// проверка изменения громкости
msgbox "Сейчас будет произведена проверка изменения громкости звука. Эффект эхо. 100% 50% 10%"
WMPlayer.Settings.Volume = 100
WMPlayer.Play
WMPlayer.Settings.Volume = 50
WMPlayer.Play
WMPlayer.Settings.Volume = 10
WMPlayer.Play
'/// проверка изменения баланса
MsgBox "Сейчас будет произведена проверка баланса. (левого и правого динамика)",vbInformation,"WMPlayerClass"
WMPlayer.Settings.Volume = 100
WMPlayer.Settings.Balance = -100
WMPlayer.Play
WMPlayer.Settings.Balance = 100
WMPlayer.Play
MsgBox "Проверка завершена.",vbInformation,"WMPlayerClass"
'/// Класс проигрывателя
Class WMPlayerClass
'/// Переменная для хранения ссылки на объект плеера
Dim WMPlayer
Private Sub Class_Initialize()
Set WMPlayer = CreateObject("WMPlayer.OCX")
WMPlayer.settings.autoStart = False
WMPlayer.settings.enableErrorDialogs = False
End Sub
'/// Свойство возвращает ссылку на объект настроек плеера
Public Property Get Settings
Set Settings = WMPlayer.Settings
End Property
'/// Метод подключения к ресурсу
Function OpenMedia(URL)
'/// Несколько из констант состояния открытия
Const wmposMediaLoading = 11
Const wmposMediaLocating = 9
Const wmposPlaylistOpenNoMedia = 6
Const wmposMediaOpen = 13
Const wmposPlaylistOpening = 5
Const wmposOpeningUnknownURL = 21
Const wmposUndefined = 0
'/// Для корректного получения данных о содержимом, нужно открыть ресурс.
WMPlayer.URL = URL
'/// Убираем звук
WMPlayer.settings.mute=true
'/// Запускаем на проигрывание
WMPlayer.controls.Play
'/// Ждём состояния открытия файла. Если файл открыть не удалось вернётся wmposPlaylistOpenNoMedia
Do
WScript.Sleep 10
Loop Until WMPlayer.OpenState = wmposMediaOpen or WMPlayer.OpenState=wmposPlaylistOpenNoMedia
'/// Останавливаем проигрывание
WMPlayer.controls.Stop
'/// Возвращаем звук
WMPlayer.settings.mute=false
End Function
'/// Свойство возвращает ссылку на параметры открытого файла
Public Property Get CurrentMedia
Set CurrentMedia = WMPlayer.CurrentMedia
End Property
'/// Метод запуска проигрывания
Function Play()
WMPlayer.Controls.Play
'/// Ожидаем окончания проигрывания (ждём пока плеер не перейдёт в состояние остановки)
Do
WScript.Sleep 100
Loop Until WMPlayer.playState = 1
End Function
End Class
Автор примера - Xameleon.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.