- Сообщения
 - 8,143
 
- Решения
 - 27
 
- Реакции
 - 6,959
 
Простой пример аудио-проигрывателя на основе 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
	
			
				Последнее редактирование: