Шурик » 07.10.2003 (Вт) 1:19
Как воспроизвести звук и видео
'Вариант 1
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
Private Sub Form_Click()
Dim res
res = mciExecute("Play C:\Путь_до_файла")
End Sub
'Вообще, для того, что бы воспроизвести аудио или видео файл, можно воспользоваться элементом управления Microsoft Multimedia Control, но при этом вместе с вашим приложением придется таскать файл MCI32.OCX, а это лишних 193 кб, приведенный же выше код гораздо меньше. Прим. все вышесказанное касается только тех случаев, когда вам необходимо просто проиграть какой-то звуковой файл из программы.
'Вариант 2
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Sub Form_Load()
Dim x As Long
x = PlaySound("C:\Путь_до_файла", 0, &H1 Or &H10)
End Sub
'Вариант 3
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Sub Form_Load()
Dim x As Long
x = sndPlaySound("C:\Путь_до_файла", &H1 Or &H10)
End Sub
Первый параметр, lpszSound, представляет собой имя WAV-файла, который вы хотите проиграть.
Второй параметр, fuSound, содержит одну из следующих констант, которые передают Windows простые команды.
SND_SYNC 0x0000 Играть синхронно (по умолчанию)
SND_ASYNC 0x0001 Играть несинхронно
SND_NODEFAULT 0x0002 Не использовать звук, предпологающийся по умолчанию
SND_MEMORY 0x0004 Первый параметр - файл памяти
SND_LOOP 0x0008 Проигрывать звук в цикле до следующего обращения к sndPlaySound
SND_NOSTOP 0x0010 Не прекращать проигрывать текущий звук
Возвращаемое значение
Возвращает TRUE, при успешном выполнении, в обратном случае FALSE
Параметры функции: lpszSoundName Имя файла. Если этот параметр NULL,
то проигрывание файла останавливается. fuOptions Специальные опции
для проигрывания музыки. Они могут быть следующими:
Значение Описание SND_SYNC Музыка играется синхронно, и функция не
возвращает указатель пока не будет конца файла. SND_ASYNC Музыка
играется асинхронно, и функция возвращает указатель сразу после
начала проигрывания файла. Чтобы остановить проигрывание,
надо вызвать функцию SndPlaySound с параметром lpszSoundName
установленным в NULL. SND_NODEFAULT Если файл не найден,
то функция возвращает указатель сразу и не проигрывает
стандартный звуковой эффект Windows. SND_MEMORY
Этот параметр нужен для проигрывания Wave-файла в виде ресурса
(из памяти). SND_LOOP Этот параметр нужен для проигрывания
Wave-файла в циклическом режиме. Также при этом вы должны
использовать влаг SND_ASYNC. Чтобы остановить проигрывание,
надо вызвать функцию SndPlaySound с параметром lpszSoundName
установленным в NULL. SND_NOSTOP Если музыка уже проигрывается,
то функция возврвщает FALSE. Возвращаемое значение:
Если музыка проигрывается правильно, то функция возврвщает TRUE,
иначе FALSE.