'СОРС ЗА ФОРМАТА

' При натискане на бутона СТАРТ

Private Sub Command1_Click()

    START sFile ' Задействаме функцията за възпроизвеждане на файла sFile

End Sub

 

' При натискане на бутона ПАУЗА

Private Sub Command2_Click()

    PAUZA ' Задействаме процедурата за пауза

End Sub

 

'При натискане на бутона СТОП

Private Sub Command3_Click()

    STOPIRANE ' Задействаме процедурата за спиране

End Sub

 

'При натискане на бутона СТАРТ ЗАПИС

Private Sub Command5_Click()

    STARTZAPIS ' Задействаме процедурата за запис

    Command5.Visible = False

End Sub

 

'При натискане на бутона СТОП ЗАПИС

Private Sub Command6_Click()

    STOPZAPIS ' Задействаме процедурата за спиране на записа

    Text1.Text = sFile 'Показваме пътя на файла в Text1

    sFile = Chr(34) & Text1.Text & Chr(34) 'Слагаме кавички на пълния път

    START sFile ' Задействаме функцията за възпроизвеждане на записания файл

    Command5.Visible = True 'Правим видим бутона ЗАПИС

End Sub

 

'При натискане на бутона ИЗБОР

Private Sub Command7_Click()

    Text1.Text = IzbranFail 'Показваме пътя на файла в Text1

    sFile = Chr(34) & Text1.Text & Chr(34) 'Слагаме кавички на пълния път

    START sFile ' Задействаме функцията за възпроизвеждане на файла sFile

End Sub

 

'При извеждане на формата

Private Sub Form_Unload(Cancel As Integer)

    STOPIRANE ' Задействаме процедурата за спиране

End Sub

 

'СОРС ЗА МОДУЛА Player

'Декларираме АПИ функцията за изпращане на команди към библиотеката на windows winmm.dll

Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Public sFile As String ' Декларираме променлива в която съхраняваме пътя на файла

Public FlagPauza ' Флаг за натисната пауза

 

'Функция за за стартиране на звуковия файл

Public Function START(ZvukovFail)

    If FlagPauza <> 1 Then Call mciSendString("Close MM", 0, 0, 0) ' Ако не е натисната паузата първо затваряме действащия файл

    Call mciSendString("Open " & ZvukovFail & " Alias MM", 0, 0, 0) ' Отваряме звуковия файл и го подаваме на winmm.dll

    Call mciSendString("Play MM", 0, 0, 0) ' Подаваме команда за започване на възпроизвеждането на звука

    FlagPauza = 0 ' Нулираме флага за пауза, защото може да е и 1

End Function

 

' Процедура за паузиране

Public Sub PAUZA()

    Call mciSendString("Pause MM", 0, 0, 0) ' Подаваме команда за ПАУЗА

    FlagPauza = 1 ' Променяме флага за ПАУЗА

End Sub

 

' Процедура за стопиране

Public Sub STOPIRANE()

    Call mciSendString("Close MM", 0, 0, 0) ' Подаваме команда за затваряне на звуковия файл

End Sub

 

' Процедура за започване на запис

Public Sub STARTZAPIS()

    Call mciSendString("Close MM", 0, 0, 0) ' Затваряме действащия в момента файл

    Call mciSendString("open new type waveaudio alias capture", 0, 0, 0) ' Отваряме нов файл

    ' Подаваме параметри за запис на файла, който ще записваме

    Call mciSendString("set capture bitspersample 16", 0, 0, 0)

    Call mciSendString("set capture samplespersec 47999", 0, 0, 0)

    Call mciSendString("set capture channels 2", 0, 0, 0)

    Call mciSendString("record capture overwrite", 0, 0, 0) ' Подаваме команда за ЗАПИС

End Sub

 

' Процедура за спиране на записа

Public Sub STOPZAPIS()

    Call mciSendString("stop capture", 0, 0, 0) ' Подаваме команда за спиране на записа

    sFile = ImeZaZapis ' Задействаме функция, която да отвори диалогова форма за избор на място и име на новия файл

    Call mciSendString("save capture " + """" + sFile + """", 0, 0, 0) ' Записваме новия файл

    Call mciSendString("close capture", 0, 0, 0) ' Затваряме записвания файл

    Call mciSendString("Close MM", 0, 0, 0) ' Подаваме команда за затваряне на файла към winmm.dll

End Sub

 

' Функция за избор на файл за отваряне

Public Function IzbranFail()

    Set objDialog = CreateObject("MSComDlg.CommonDialog") '

    objDialog.ShowOpen

    If Len(objDialog.FileName) > 1 Then

        IzbranFail = objDialog.FileName

    End If

End Function

 

' Функция за избор на място за запис на файла при записване

Public Function ImeZaZapis()

    Set IzborZaZapis = CreateObject("MSComDlg.CommonDialog")

    IzborZaZapis.FileName = "proba.wav"

    IzborZaZapis.ShowSave

    ImeZaZapis = IzborZaZapis.FileName

End Function