- Сообщения
- 8,017
- Решения
- 12
- Реакции
- 6,787
Простой пример аудио-проигрывателя на основе API-функции mciSendString
Функции:
Функции:
- Воспроизвести
- Приостановить
- Продолжить
- Остановить
VB.NET / VBA:
Option Explicit
Public Declare Function mciSendString& Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand$, _
ByVal lpstrReturnString$, _
ByVal uReturnLength&, _
ByVal hwndCallback&)
Private Const MCI_ALIAS As String = "Media_1" '// Любой псевдоним
Sub main()
Dim strFileName$
strFileName = "u:\Разная\9-para_normalnih vstavay.mp3" '// Задаем имя аудио-файла
'// Обход ошибки пробелов в имени и пути к файлу
strFileName = Replace(strFileName, Chr(34), "")
If InStr(strFileName, " ") <> 0 Then strFileName = Chr(34) & strFileName & Chr(34)
'// Проиграть музыку (по-умолчанию в асинхронном режиме - без ожидания завершения трека)
PlaySnd strFileName
'PlaySnd strFileName:=strFileName, ASync:=False
MCISend "Pause " & MCI_ALIAS '// Приостановить
Stop
MCISend "Resume " & MCI_ALIAS '// Продолжить
Stop
StopSnd '// Остановить
End Sub
Sub StopSnd()
MCISend "Stop " & MCI_ALIAS '// Останавливаем воспроизведение
MCISend "Close " & MCI_ALIAS '// Закрываем файл
End Sub
Sub PlaySnd(strFileName$, Optional ASync As Boolean = True)
'// Закрываем файл.
'// Если он не закрыт, воспроизведение будет продолжено с предыдущей позиции
'// Seek не использую. Приводит к искажениям в начале воспроизведения на некоторых дорожках.
MCISend "Close " & MCI_ALIAS
MCISend "Open " & strFileName & " alias " & MCI_ALIAS '// Присваиваем алиас
MCISend "Play " & MCI_ALIAS & IIf(ASync, "", " wait")
End Sub
Sub MCISend(lpstrCommand$)
mciSendString lpstrCommand, vbNullString, 0&, 0&
End Sub
Последнее редактирование: