Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Audio recorder on visual basic

Тип Реферат
Предмет Информатика и программирование
Просмотров
572
Размер файла
57 б
Поделиться

Ознакомительный фрагмент работы:

Audio recorder on visual basic

AUTOMATIC SYSTEM

AUDIO RECORDER ON VISUAL BASIC

Dushanbe, 2009

Main Interface

Source Code

Option Explicit

'Copyright: E. de Vries

'e-mail: eeltje@geocities.com

'This code can be used as freeware

Const AppName = "AudioRecorder"

Private Sub cmdSave_Click ()

Dim sName As String

If WaveMidiFileName = "" Then

sName = "Radio_from_" & CStr (WaveRecordingStartTime) & "_to_" & CStr (WaveRecordingStopTime)

sName = Replace (sName, ": ", "-")

sName = Replace (sName, " ", "_")

sName = Replace (sName, "/", "-")

Else

sName = WaveMidiFileName

sName = Replace (sName, "MID", "wav")

End If

CommonDialog1. FileName = sName

CommonDialog1. CancelError = True

On Error GoTo ErrHandler1

CommonDialog1. Filter = "WAV file (*. wav*) |*. wav"

CommonDialog1. Flags = &H2 Or &H400

CommonDialog1. ShowSave

sName = CommonDialog1. FileName

WaveSaveAs (sName)

Exit Sub

ErrHandler1:

End Sub

Private Sub cmdRecord_Click ()

Dim settings As String

Dim Alignment As Integer

Alignment = Channels * Resolution / 8

settings = "set capture alignment " & CStr (Alignment) & " bitspersample " & CStr (Resolution) & " samplespersec " & CStr (Rate) & " channels " & CStr (Channels) & " bytespersec " & CStr (Alignment * Rate)

WaveReset

WaveSet

WaveRecord

WaveRecordingStartTime = Now

cmdStop. Enabled = True 'Enable the STOP BUTTON

cmdPlay. Enabled = False 'Disable the "PLAY" button

cmdSave. Enabled = False 'Disable the "SAVE AS" button

cmdRecord. Enabled = False 'Disable the "RECORD" button

End Sub

Private Sub cmdSettings_Click ()

Dim strWhat As String

' show the user entry form modally

strWhat = MsgBox ("If you continue your data will be lost!", vbOKCancel)

If strWhat = vbCancel Then

Exit Sub

End If

Slider1. Max = 10

Slider1. Value = 0

Slider1. Refresh

cmdRecord. Enabled = True

cmdStop. Enabled = False

cmdPlay. Enabled = False

cmdSave. Enabled = False

WaveReset

Rate = CLng (GetSetting ("AudioRecorder", "StartUp", "Rate", "110025"))

Channels = CInt (GetSetting ("AudioRecorder", "StartUp", "Channels", "1"))

Resolution = CInt (GetSetting ("AudioRecorder", "StartUp", "Resolution", "16"))

WaveFileName = GetSetting ("AudioRecorder", "StartUp", "WaveFileName", "C: Radio. wav")

WaveAutomaticSave = GetSetting ("AudioRecorder", "StartUp", "WaveAutomaticSave", "True")

WaveRecordingImmediate = True

WaveRecordingReady = False

WaveRecording = False

WavePlaying = False

'Be sure to change the Value property of the appropriate button!!

'if you change the default values!

WaveSet

frmSettings. optRecordImmediate. Value = True

frmSettings. Show vbModal

End Sub

Private Sub cmdStop_Click ()

WaveStop

cmdSave. Enabled = True 'Enable the "SAVE AS" button

cmdPlay. Enabled = True 'Enable the "PLAY" button

cmdStop. Enabled = False 'Disable the "STOP" button

If WavePosition = 0 Then

Slider1. Max = 10

Else

If WaveRecordingImmediate And (Not WavePlaying) Then Slider1. Max = WavePosition

If (Not WaveRecordingImmediate) And WaveRecording Then Slider1. Max = WavePosition

End If

If WaveRecording Then WaveRecordingReady = True

WaveRecordingStopTime = Now

WaveRecording = False

WavePlaying = False

frmSettings. optRecordProgrammed. Value = False

frmSettings. optRecordImmediate. Value = True

frmSettings. lblTimes. Visible = False

End Sub

Private Sub cmdPlay_Click ()

WavePlayFrom (Slider1. Value)

WavePlaying = True

cmdStop. Enabled = True

cmdPlay. Enabled = False

End Sub

Private Sub cmdWeb_Click ()

Dim ret&

ret& = ShellExecute (Me. hwnd, "Open", "http://home. wxs. nl/~eeltjevr/", "", App. Path,

1)

End Sub

Private Sub cmdReset_Click ()

Slider1. Max = 10

Slider1. Value = 0

Slider1. Refresh

cmdRecord. Enabled = True

cmdStop. Enabled = False

cmdPlay. Enabled = False

cmdSave. Enabled = False

WaveReset

Rate = CLng (GetSetting ("AudioRecorder", "StartUp", "Rate", "110025"))

Channels = CInt (GetSetting ("AudioRecorder", "StartUp", "Channels", "1"))

Resolution = CInt (GetSetting ("AudioRecorder", "StartUp", "Resolution", "16"))

WaveFileName = GetSetting ("AudioRecorder", "StartUp", "WaveFileName", "C: Radio. wav")

WaveAutomaticSave = GetSetting ("AudioRecorder", "StartUp", "WaveAutomaticSave", "True")

WaveRecordingImmediate = True

WaveRecordingReady = False

WaveRecording = False

WavePlaying = False

WaveMidiFileName = ""

'Be sure to change the Value property of the appropriate button!!

'if you change the default values!

WaveSet

If WaveRenameNecessary Then

Name WaveShortFileName As WaveLongFileName

WaveRenameNecessary = False

WaveShortFileName = ""

End If

End Sub

Private Sub Form_Load ()

WaveReset

Rate = CLng (GetSetting ("AudioRecorder", "StartUp", "Rate", "110025"))

Channels = CInt (GetSetting ("AudioRecorder", "StartUp", "Channels", "1"))

Resolution = CInt (GetSetting ("AudioRecorder", "StartUp", "Resolution", "16"))

WaveFileName = GetSetting ("AudioRecorder", "StartUp", "WaveFileName", "C: Radio. wav")

WaveAutomaticSave = GetSetting ("AudioRecorder", "StartUp", "WaveAutomaticSave", "True")

WaveRecordingImmediate = True

WaveRecordingReady = False

WaveRecording = False

WavePlaying = False

'Be sure to change the Value property of the appropriate button!!

'if you change the default values!

WaveSet

WaveRecordingStartTime = Now + TimeSerial (0, 15, 0)

WaveRecordingStopTime = WaveRecordingStartTime + TimeSerial (0, 15, 0)

WaveMidiFileName = ""

WaveRenameNecessary = False

End Sub

Private Sub Form_Unload (Cancel As Integer)

WaveClose

Call SaveSetting ("AudioRecorder", "StartUp", "Rate", CStr (Rate))

Call SaveSetting ("AudioRecorder", "StartUp", "Channels", CStr (Channels))

Call SaveSetting ("AudioRecorder", "StartUp", "Resolution", CStr (Resolution))

Call SaveSetting ("AudioRecorder", "StartUp", "WaveFileName", WaveFileName)

Call SaveSetting ("AudioRecorder", "StartUp", "WaveAutomaticSave", CStr (WaveAutomaticSave))

If WaveRenameNecessary Then

Name WaveShortFileName As WaveLongFileName

WaveRenameNecessary = False

WaveShortFileName = ""

End If

End

End Sub

Private Sub Timer2_Timer ()

Dim RecordingTimes As String

Dim msg As String

RecordingTimes = "Start time: " & WaveRecordingStartTime & vbCrLf _

& "Stop time: " & WaveRecordingStopTime

WaveStatistics

If Not WaveRecordingImmediate Then

WaveStatisticsMsg = WaveStatisticsMsg & "Programmed recording"

If WaveAutomaticSave Then

WaveStatisticsMsg = WaveStatisticsMsg & " (automatic save)"

Else

WaveStatisticsMsg = WaveStatisticsMsg & " (manual save)"

End If

WaveStatisticsMsg = WaveStatisticsMsg & vbCrLf & vbCrLf & RecordingTimes

End If

StatisticsLabel. Caption = WaveStatisticsMsg

WaveStatus

If WaveStatusMsg <> AudioRecorder. Caption Then AudioRecorder. Caption = WaveStatusMsg

If InStr (AudioRecorder. Caption, "stopped") > 0 Then

cmdStop. Enabled = False

cmdPlay. Enabled = True

End If

If RecordingTimes <> frmSettings. lblTimes. Caption Then frmSettings. lblTimes. Caption = RecordingTimes

If (Now > WaveRecordingStartTime) _

And (Not WaveRecordingReady) _

And (Not WaveRecordingImmediate) _

And (Not WaveRecording) Then

WaveReset

WaveSet

WaveRecord

WaveRecording = True

cmdStop. Enabled = True 'Enable the STOP BUTTON

cmdPlay. Enabled = False 'Disable the "PLAY" button

cmdSave. Enabled = False 'Disable the "SAVE AS" button

cmdRecord. Enabled = False 'Disable the "RECORD" button

End If

If (Now > WaveRecordingStopTime) And (Not WaveRecordingReady) And (Not WaveRecordingImmediate) Then

WaveStop

cmdSave. Enabled = True 'Enable the "SAVE AS" button

cmdPlay. Enabled = True 'Enable the "PLAY" button

cmdStop. Enabled = False 'Disable the "STOP" button

If WavePosition > 0 Then

Slider1. Max = WavePosition

Else

Slider1. Max = 10

End If

WaveRecording = False

WaveRecordingReady = True

If WaveAutomaticSave Then

WaveFileName = "Radio_from_" & CStr (WaveRecordingStartTime) & "_to_" & CStr (WaveRecordingStopTime)

WaveFileName = Replace (WaveFileName, ": ", ". ")

WaveFileName = Replace (WaveFileName, " ", "_")

WaveFileName = WaveFileName & ". wav"

WaveSaveAs (WaveFileName)

msg = "Recording has been saved" & vbCrLf

msg = msg & "Filename: " & WaveFileName

MsgBox (msg)

Else

msg = "Recording is ready" & vbCrLf

msg = msg & "Don't forget to save recording..."

MsgBox (msg)

End If

frmSettings. optRecordProgrammed. Value = False

frmSettings. optRecordImmediate. Value = True

End If

End Sub

Option Explicit

Private Sub cmdFileName_Click ()

WaveFileName = InputBox ("Filename: ", "Filename for automatic saving", WaveFileName)

End Sub

Private Sub cmdMidi_Click ()

CommonDialog2. CancelError = True

On Error GoTo ErrHandler1

CommonDialog2. Filter = "Midi file (*. mid*) |*. mid"

CommonDialog2. Flags = &H2 Or &H400

CommonDialog2. ShowOpen

WaveMidiFileName = CommonDialog2. FileName

WaveMidiFileName = GetShortName (WaveMidiFileName)

ErrHandler1:

End Sub

Private Sub cmdOke_Click ()

Unload Me

End Sub

Private Sub cmdStartTime_Click ()

Dim wrst As String

wrst = WaveRecordingStartTime

wrst = InputBox ("Enter start time recording", "Start time", wrst)

If wrst = "" Then Exit Sub

If Not IsDate (wrst) Then

MsgBox ("The date/time you entered was not valid!")

Else

' String returned from InputBox is a valid time,

' so store it as a date/time value in WaveRecordingStartTime.

If CDate (wrst) < Now Then

MsgBox ("Recording events in the past is not possible... ")

WaveRecordingStartTime = Now + TimeSerial (0, 15, 0)

Else

WaveRecordingStartTime = CDate (wrst)

End If

If WaveRecordingStopTime < WaveRecordingStartTime Then WaveRecordingStopTime = WaveRecordingStartTime + TimeSerial (0, 15, 0)

End If

End Sub

Private Sub cmdStopTime_Click ()

Dim wrst As String

wrst = WaveRecordingStopTime

If wrst < WaveRecordingStartTime Then wrst = WaveRecordingStartTime + TimeSerial (0, 15, 0)

wrst = InputBox ("Enter stop time recording", "Stop time", wrst)

If wrst = "" Then Exit Sub

If Not IsDate (wrst) Then

MsgBox ("The time you entered was not valid!")

Else

' String returned from InputBox is a valid time,

' so store it as a date/time value in WaveRecordingStartTime.

If CDate (wrst) < WaveRecordingStartTime Then

MsgBox ("The stop time has to be later then the start time!")

WaveRecordingStopTime = WaveRecordingStartTime + TimeSerial (0, 5, 0)

Else

WaveRecordingStopTime = CDate (wrst)

End If

End If

End Sub

Private Sub Form_Load ()

Select Case Rate

Case 44100

optRate44100. Value = True

Case 22050

optRate22050. Value = True

Case 11025

optRate11025. Value = True

Case 8000

optRate8000. Value = True

Case 6000

optRate6000. Value = True

End Select

Select Case Channels

Case 1

optMono. Value = True

Case 2

optStereo. Value = True

End Select

Select Case Resolution

Case 8

opt8bits. Value = True

Case 16

opt16bits. Value = True

End Select

If WaveRecordingImmediate Then

optRecordImmediate. Value = True

Else

optRecordProgrammed. Value = True

End If

If WaveAutomaticSave Then

Option11. Value = True

Else

Option10. Value = True

End If

End Sub

Private Sub optRate11025_Click ()

Rate = 11025

optRate11025. Value = True

End Sub

Private Sub optRate44100_Click ()

Rate = 44100

optRate44100. Value = True

End Sub

Private Sub Option10_Click ()

WaveAutomaticSave = False

End Sub

Private Sub Option11_Click ()

WaveAutomaticSave = True

End Sub

Private Sub optRate22050_Click ()

Rate = 22050

optRate22050. Value = True

End Sub

Private Sub optRate8000_Click ()

Rate = 8000

optRate8000. Value = True

End Sub

Private Sub optRate6000_Click ()

Rate = 6000

optRate6000. Value = True

End Sub

Private Sub optMono_Click ()

Channels = 1

optMono. Value = True

End Sub

Private Sub optStereo_Click ()

Channels = 2

optStereo. Value = True

End Sub

Private Sub opt8bits_Click ()

Resolution = 8

opt8bits. Value = True

End Sub

Private Sub opt16bits_Click ()

Resolution = 16

opt16bits. Value = True

End Sub

Private Sub optRecordImmediate_Click ()

WaveRecordingImmediate = True

frmManualAuto. Visible = False

frmTimes. Visible = False

lblTimes. Visible = False

AudioRecorder. cmdRecord. Enabled = True

End Sub

Private Sub optRecordProgrammed_Click ()

WaveRecordingImmediate = False

frmManualAuto. Visible = True

frmTimes. Visible = True

lblTimes. Visible = True

AudioRecorder. cmdRecord. Enabled = False

If WaveRecordingStartTime < Now Then

WaveRecordingStartTime = Now + TimeSerial (0, 15, 0)

WaveRecordingStopTime = WaveRecordingStartTime + TimeSerial (0, 15, 0)

End If

End Sub

Option Explicit

Public Declare Function ShellExecute Lib "shell32. dll" Alias _

"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As _

String, ByVal lpFile As String, ByVal lpParameters As String, _

ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Option Explicit

Public Rate As Long

Public Channels As Integer

Public Resolution As Integer

Public WaveStatusMsg As String * 255

Public WaveStatisticsMsg As String

Public WaveRecordingImmediate As Boolean

Public WaveRecordingStartTime As Date

Public WaveRecordingStopTime As Date

Public WaveRecordingReady As Boolean

Public WaveRecording As Boolean

Public WavePlaying As Boolean

Public WaveAutomaticSave As Boolean

Public WaveFileName As String

Public WaveMidiFileName As String

Public WaveLongFileName As String

Public WaveShortFileName As String

Public WaveRenameNecessary As Boolean

'These were the public variables

'=====================================================

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

Private Declare Function GetShortPathName Lib "kernel32" _

Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _

ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

Private Declare Function FindFirstFile& Lib "kernel32" _

Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData _

As WIN32_FIND_DATA)

Private Declare Function FindClose Lib "kernel32" _

(ByVal hFindFile As Long) As Long

Private Const MAX_PATH = 260

Private Type FILETIME ' 8 Bytes

dwLowDateTime As Long

dwHighDateTime As Long

End Type

Private Type WIN32_FIND_DATA ' 318 Bytes

dwFileAttributes As Long

ftCreationTime As FILETIME

ftLastAccessTime As FILETIME

ftLastWriteTime As FILETIME

nFileSizeHigh As Long

nFileSizeLow As Long

dwReservedЇ As Long

dwReserved1 As Long

cFileName As String * MAX_PATH

cAlternate As String * 14

End Type

Private Function FileExist (strFileName As String) As Boolean

Dim lpFindFileData As WIN32_FIND_DATA

Dim hFindFirst As Long

hFindFirst = FindFirstFile (strFileName, lpFindFileData)

If hFindFirst > 0 Then

FindClose hFindFirst

FileExist = True

Else

FileExist = False

End If

End Function

Public Function GetShortName (ByVal sLongFileName As String) As String

Dim lRetVal As Long, sShortPathName As String, iLen As Integer

'Set up buffer area for API function call return

sShortPathName = Space (255)

iLen = Len (sShortPathName)

'Call the function

lRetVal = GetShortPathName (sLongFileName, sShortPathName, iLen)

If lRetVal = 0 Then 'The file does not exist, first create it!

Open sLongFileName For Random As #1

Close #1

lRetVal = GetShortPathName (sLongFileName, sShortPathName, iLen)

'Now another try!

Kill (sLongFileName)

'Delete file now!

End If

'Strip away unwanted characters.

GetShortName = Left (sShortPathName, lRetVal)

End Function

Private Function Has_Space (sName As String) As Boolean

Dim b As Boolean

Dim i As Long

b = False 'not yet any spaces found

i = InStr (sName, " ")

If i <> 0 Then b = True

Has_Space = b

End Function

Public Sub WaveReset ()

Dim rtn As String

Dim i As Long

rtn = Space$ (260)

'Close any MCI operations from previous VB programs

i = mciSendString ("close all", rtn, Len (rtn), 0)

If i <> 0 Then MsgBox ("Closing all MCI operations failed!")

'Open a new WAV with MCI Command...

i = mciSendString ("open new type waveaudio alias capture", rtn, Len (rtn), 0)

If i <> 0 Then MsgBox ("Opening new wave failed!")

End Sub

Public Sub WaveSet ()

Dim rtn As String

Dim i As Long

Dim settings As String

Dim Alignment As Integer

rtn = Space$ (260)

Alignment = Channels * Resolution / 8

settings = "set capture alignment " & CStr (Alignment) & " bitspersample " & CStr (Resolution) & " samplespersec " & CStr (Rate) & " channels " & CStr (Channels) & " bytespersec " & CStr (Alignment * Rate)

'Samples Per Second that are supported:

'11025 low quality

'22050 medium quality

'44100 high quality (CD music quality)

'Bits per sample is 16 or 8

'Channels are 1 (mono) or 2 (stereo)

i = mciSendString ("seek capture to start", rtn, Len (rtn), 0) 'Always start at the beginning

If i <> 0 Then MsgBox ("Starting recording failed!")

'You can use at least the following combinations

' i = mciSendString ("set capture alignment 4 bitspersample 16 samplespersec 44100 channels 2 bytespersec 176400", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 2 bitspersample 16 samplespersec 44100 channels 1 bytespersec 88200", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 4 bitspersample 16 samplespersec 22050 channels 2 bytespersec 88200", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 2 bitspersample 16 samplespersec 22050 channels 1 bytespersec 44100", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 4 bitspersample 16 samplespersec 11025 channels 2 bytespersec 44100", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 2 bitspersample 16 samplespersec 11025 channels 1 bytespersec 22050", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 2 bitspersample 8 samplespersec 11025 channels 2 bytespersec 22050", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 1 bitspersample 8 samplespersec 11025 channels 1 bytespersec 11025", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 2 bitspersample 8 samplespersec 8000 channels 2 bytespersec 16000", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 1 bitspersample 8 samplespersec 8000 channels 1 bytespersec 8000", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 2 bitspersample 8 samplespersec 6000 channels 2 bytespersec 12000", rtn, Len (rtn), 0)

' i = mciSendString ("set capture alignment 1 bitspersample 8 samplespersec 6000 channels 1 bytespersec 6000", rtn, Len (rtn), 0)

i = mciSendString (settings, rtn, Len (rtn), 0)

If i <> 0 Then MsgBox ("Settings for recording not consistent")

' If the combination is not supported you get an error!

End Sub

Public Sub WaveRecord ()

Dim rtn As String

Dim i As Long

Dim msg As String

rtn = Space$ (260)

If WaveMidiFileName <> "" Then

If WaveRecordingImmediate Then MsgBox ("Midi file " & WaveMidiFileName & " will be recorded")

i = mciSendString ("open " & WaveMidiFileName & " type sequencer alias midi", rtn, Len (rtn), 0)

If i <> 0 Then MsgBox ("Opening midi file failed!")

i = mciSendString ("play midi", rtn, Len (rtn), 0) 'Start the recording

If i <> 0 Then MsgBox ("Playing midi file failed!")

End If

i = mciSendString ("record capture", rtn, Len (rtn), 0) 'Start the recording

If i <> 0 Then MsgBox ("Recording not possible, please restart your computer... ")

End Sub

Public Sub WaveSaveAs (sName As String)

Dim rtn As String

Dim i As Long

'If file already exists then remove it

If FileExist (sName) Then

Kill (sName)

End If

'The mciSendString API call doesn't seem to like'

'long filenames that have spaces in them, so we

'will make another API call to get the short

'filename version.

'This is accomplished by the function GetShortName

'MCI command to save the WAV file

If Has_Space (sName) Then

WaveShortFileName = GetShortName (sName)

WaveLongFileName = sName

WaveRenameNecessary = True

' These are necessary in order to be able to rename file

i = mciSendString ("save capture " & WaveShortFileName, rtn, Len (rtn), 0)

Else

i = mciSendString ("save capture " & sName, rtn, Len (rtn), 0)

End If

If i <> 0 Then MsgBox ("Saving file failed, file name was: " & sName)

End Sub

Public Sub WaveStop ()

Dim rtn As String

Dim i As Long

i = mciSendString ("stop capture", rtn, Len (rtn), 0)

If i <> 0 Then MsgBox ("Stopping recording failed!")

If WaveMidiFileName <> "" Then

i = mciSendString ("stop midi", rtn, Len (rtn), 0)

If i <> 0 Then MsgBox ("Stopping playing midi file failed!")

End If

End Sub

Public Sub WavePlay ()

Dim rtn As String

Dim i As Long

i = mciSendString ("play capture from 0", rtn, Len (rtn), 0)

If i <> 0 Then MsgBox ("Start playing failed!")

End Sub

Public Sub WaveStatus ()

Dim i As Long

WaveStatusMsg = Space (255)

i = mciSendString ("status capture mode", WaveStatusMsg, 255, 0)

If i <> 0 Then MsgBox ("Failure getting wave status... ")

WaveStatusMsg = "AudioRecorder: " & WaveStatusMsg

End Sub

Public Sub WaveStatistics ()

Dim mssg As String * 255

Dim i As Long

i = mciSendString ("set capture time format ms", 0&, 0, 0)

If i <> 0 Then MsgBox ("Setting time format in milliseconds failed!")

i = mciSendString ("status capture length", mssg, 255, 0)

mssg = CStr (CLng (mssg) / 1000)

If i <> 0 Then MsgBox ("Finding length recording in milliseconds failed!")

WaveStatisticsMsg = "Length recording " & Str (mssg) & " s"

i = mciSendString ("set capture time format bytes", 0&, 0, 0)

If i <> 0 Then MsgBox ("Setting time format in bytes failed!")

i = mciSendString ("status capture length", mssg, 255, 0)

If i <> 0 Then MsgBox ("Finding length recording in bytes failed!")

WaveStatisticsMsg = WaveStatisticsMsg & " (" & Str (mssg) & " bytes)" & vbCrLf

i = mciSendString ("status capture channels", mssg, 255, 0)

If i <> 0 Then MsgBox ("Finding number of channels failed!")

If Str (mssg) = 1 Then

WaveStatisticsMsg = WaveStatisticsMsg & "Mono - "

ElseIf Str (mssg) = 2 Then

WaveStatisticsMsg = WaveStatisticsMsg & "Stereo - "

End If

i = mciSendString ("status capture bitspersample", mssg, 255, 0)

If i <> 0 Then MsgBox ("Finding resolution failed!")

WaveStatisticsMsg = WaveStatisticsMsg & Str (mssg) & " bits - "

i = mciSendString ("status capture samplespersec", mssg, 255, 0)

If i <> 0 Then MsgBox ("Finding sample rate failed!")

WaveStatisticsMsg = WaveStatisticsMsg & Str (mssg) & " samples per second " & vbCrLf & vbCrLf

End Sub

Public Sub WaveClose ()

Dim rtn As String

Dim i As Long

i = mciSendString ("close capture", rtn, Len (rtn), 0)

If i <> 0 Then MsgBox ("Closing MCI failed!")

End Sub

Public Function WavePosition () As Long

Dim rtn As String

Dim i As Long

Dim pos As String

rtn = Space (255)

pos = Space (255)

i = mciSendString ("set capture time format ms", rtn, Len (rtn), 0)

If i <> 0 Then MsgBox ("Setting format in milliseconds failed!")

i = mciSendString ("status capture position", pos, 255, 0)

If i <> 0 Then MsgBox ("Finding position failed!")

If i <> 0 Then MsgBox ("Error in position")

WavePosition = CLng (pos)

End Function

Public Sub WavePlayFrom (Position As Long)

Dim rtn As String

Dim i As Long

Dim pos As String

pos = CStr (Position)

i = mciSendString ("set capture time format ms", 0&, 0, 0)

If i <> 0 Then MsgBox ("Setting format in milliseconds failed!")

i = mciSendString ("play capture from " & pos, rtn, Len (rtn), 0)

If i <> 0 Then MsgBox ("Playing from indicated position failed!")

If i <> 0 Then MsgBox ("Play from position doesn't work... ")

End Sub

Interface in Action


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно