8
Ноябрь
2009
Как создать WAV файл
Как создать WAV файл
Option Explicit Enum LEN_FORMAT frmSeconds = 0 frmSamples = 1 End Enum Type RIFF_HEAD riffFmt As String * 4 lenOfFileData As Long/wp-admin/post-new.php End Type Type WAVE_HEAD waveFmt As String * 8 lenOfThunk As Long format As Integer channels As Integer samplesPerSecond As Long avgBytesPerSecond As Long blockAlign As Integer bitsPerSample As Integer End Type Type DATA_HEAD dataStr As String * 4 lenOfThunk As Long End Type Public Function CreateWaveFile(ByVal fileName As String, ByRef waveHead As WAVE_HEAD, ByVal waveData As Variant) As Boolean On Error GoTo ERRH Dim riffHead As RIFF_HEAD Dim dataHead As DATA_HEAD Dim freeNum As Long Dim arrBound As Long Dim arrToPut() As Byte freeNum = FreeFile arrBound = UBound(waveData) Open fileName For Binary As #freeNum riffHead.riffFmt = "RIFF" riffHead.lenOfFileData = arrBound + 37 Put #freeNum, , riffHead waveHead.lenOfThunk = 16 waveHead.waveFmt = "WAVEfmt " Put #freeNum, , waveHead dataHead.lenOfThunk = arrBound + 1 dataHead.dataStr = "data" Put #freeNum, , dataHead ReDim arrToPut(arrBound) arrToPut = waveData Put #freeNum, , arrToPut Close #freeNum CreateWaveFile = True Exit Function ERRH: CreateWaveFile = False End Function