Как воспроизвести WMA, MP3, MIDI файлы?
Многие программисты знают, как на VB воспроизвести MIDI или WAV файл. Однако MIDI воспроизводится только после небольшого зависания, а, используя WAV для записи музыки, дистрибутив вашей программы будет весить на порядок больше и она станет непригодной для распространения по сети.
Как вы уже догадались, решить такую задачу без постороннего вмешательства VB не под силу. Для этого нам потребуется библиотека quartz.dll, которая распространяется с DirectX.
Подключите эту библиотеку к вашему проекту через меню Проект>Информация (Project>References), затем создайте новый класс clsSound, и поместите туда следующий код:
Dim MP As IMediaPosition
Function LoadSound(ByVal SndPath As String)
Set snd = New FilgraphManager
Set MP = snd
snd.RenderFile SndPath
End Function
Function PlaySound()
snd.Run
MP.CurrentPosition = 0
End Function
Function StopSound()
snd.Stop
End Function
Function PauseSound()
snd.Pause
End Function
Public Property Get Position() As Integer
Position = MP.CurrentPosition
End Property
Public Property Let Position(ByVal NewPos%)
MP.CurrentPosition = NewPos
End Property
Теперь создайте новую форму, если у вас еще ее нет, и разместите на ней кнопки Command1 и Command2. Вставьте этот код в модуль формы:
Private Sub Form_Load()
sndPlayer.LoadSound "C:\1.mp3"
End Sub
Private Sub Command1_Click()
sndPlayer.PlaySound
End Sub
Private Sub Command2_Click()
sndPlayer.StopSound
End Sub
Ну и, напоследок, если вы хотите, чтобы ваша музыка повторялась, вставьте таймер и напишите:
Static LastPos%
If sndPlayer.Position = LastPos Then
sndPlayer.Position = 0
sndPlayer.PlaySound
End If
LastPos = sndPlayer.Position
End Sub
Оригинальная статья Влада Рубцова. https://vladikcomper.scanf.su/