# Re: recording wave file

Posted by Honey on August 14, 1998 at 21:56:11:

In Reply to: recording wave file posted by Tony LIN on August 13, 1998 at 03:14:38:

: vb6-pro win95 请问如何设定录 wave 档之格式 44.1k 16bits stereo

基本上 录音程式是以判断
档头的方式 分析声档录音方式
在8月7号 "教教我吧 要如何声音的绘出波形"中
有比较完整的档头资料
有空可以参考一下喔

若是一笔新开启的档案
用VB录音 就得先写入档头
当成是编辑一笔已存在的档案
通常是用以下程式码填入

Dim Tatle(1 To 11) As Long
Dim IntCost As Integer
Dim IntCost1 As Integer
Dim LngCost As Long
Dim i As Long

'/*以下是标准 16bit 44.1KHz 立体音_
声档的档头资料
Tatle(1) = 1179011410
Tatle(2) = 36
Tatle(3) = 1163280727
Tatle(4) = 544501094
Tatle(5) = 16
Tatle(6) = 131073
Tatle(7) = 44100
Tatle(8) = 176400
Tatle(9) = 1048580
Tatle(10) = 1635017060
Tatle(11) = 0
'*/

Dim StrFileName As String
StrFileName = "C:\h.wav"
'/*设定开启档案*/
If Dir(StrFileName) = "" Then
'/*如果档案是要新开启的 _
就需要填入档头*/
Open StrFileName For Random As #1 Len = 4
For i = 1 To 11
Put #1, i, Tatle(i) '/*填入档头*/
Next
Close #1
End If

'/*设定声档 bit
Open StrFileName For Random As #2 Len = 2
IntCost = 16 '/*16位元*/
'/*若IntCost= 8 表 8 bit _
若IntCost= 16 表16 bit*/
Put #2, 18, IntCost

Close #2 '*/

'/*设定取样数
Open StrFileName For Random As #3 Len = 4
LngCost = 44.1 '/*44.1kHz*/
'/*若LngCost= 22.1表 22.1 kHz _
若IntCost=44.1 表44.1 kHz*/
LngCost = LngCost * 1000
Put #3, 7, LngCost
Close #3 '*/

之后 就可以将档案开启
做录音的工作了
另外Visual Basic 专业版以上
有 Multimedia MCI 控制项
(在 Mci32.ocx中)
操作上~比较简单
嗯 简单介绍一下吧

档头写完后 加入以下程式

MMControl1.Notify = False
MMControl1.Wait = True
MMControl1.Shareable = False
MMControl1.DeviceType = "WaveAudio"
MMControl1.filename = StrFileName'/*之前设定的档名*/
'开启 MCI WaveAudio 周边设备。
MMControl1.Command = "Open"

在最后别忘了加入以下程式
Private Sub Form_Unload(Cancel As Integer)
MMControl1.Command = "Save" '/*储存档案*/
MMControl1.Command = "Close"
End Sub

Follow Ups: