我是进行录音,但系统默认的是:PCM - 44.1 kHz 16 Bit Stereo
我只需要MPEG Layer-3 - 32 kBit/s, 22,050 Hz, Mono 和 PCM - 11.025 kHz, 16 位, 单声道 两种。
设置时必须通过调用acmFormatChoose API,弹出对话框。
请问如果才能不要弹出对话框,在程序中直接设置?
谢谢!
我只需要MPEG Layer-3 - 32 kBit/s, 22,050 Hz, Mono 和 PCM - 11.025 kHz, 16 位, 单声道 两种。
设置时必须通过调用acmFormatChoose API,弹出对话框。
请问如果才能不要弹出对话框,在程序中直接设置?
谢谢!
其中包含两个预置的数据。其实这个数据好像就是个文件头,在写文件的时间这样写入就行了。
如果需是讨论请联系:[email protected] Const WFXSize As Long = 128& * 1024&
Private btWfxOut() As Byte
Private lngWFXOutLen As LongPublic Sub SelectFormatMp3() '32K 16bit mono Mp3
ReDim btWfxOut(WFXSize - 1) As Byte
btWfxOut(0) = 85
btWfxOut(1) = 0
btWfxOut(2) = 1
btWfxOut(3) = 0
btWfxOut(4) = 34
btWfxOut(5) = 86
btWfxOut(6) = 0
btWfxOut(7) = 0
btWfxOut(8) = 160
btWfxOut(9) = 15
btWfxOut(10) = 0
btWfxOut(11) = 0
btWfxOut(12) = 1
btWfxOut(13) = 0
btWfxOut(14) = 0
btWfxOut(15) = 0
btWfxOut(16) = 12
btWfxOut(17) = 0
btWfxOut(18) = 1
btWfxOut(19) = 0
btWfxOut(20) = 2
btWfxOut(21) = 0
btWfxOut(22) = 0
btWfxOut(23) = 0
btWfxOut(24) = 104
btWfxOut(25) = 0
btWfxOut(26) = 1
btWfxOut(27) = 0
btWfxOut(28) = 113
btWfxOut(29) = 5
lngWFXOutLen = CLng(18) + CLng(12)
End SubPublic Sub SelectFormatWav() 'PCM 16bit 22K mono ReDim btWfxOut(WFXSize - 1) As Byte
btWfxOut(0) = 1
btWfxOut(1) = 0
btWfxOut(2) = 1
btWfxOut(3) = 0
btWfxOut(4) = 17
btWfxOut(5) = 43
btWfxOut(6) = 0
btWfxOut(7) = 0
btWfxOut(8) = 34
btWfxOut(9) = 86
btWfxOut(10) = 0
btWfxOut(11) = 0
btWfxOut(12) = 2
btWfxOut(13) = 0
btWfxOut(14) = 16
lngWFXOutLen = CLng(18) + CLng(0)
End SubPrivate Sub WriteWAVHdr()
Dim udtHdr As WAVRIFF
Dim lngDataID As Long
Dim lngData As Long With udtHdr
.RIFF = WAV_RIFF
.WAVE = WAV_WAVE
.fmt = WAV_FMT
.hdrlen = FileLength(hFOut) - 8
.chnksize = lngWFXOutLen
End With FileSeek hFOut, 0, FILE_BEGIN
FileWrite hFOut, VarPtr(udtHdr), Len(udtHdr) FileWrite hFOut, VarPtr(btWfxOut(0)), lngWFXOutLen '这个地方就是是将文件头写入,不同类型数据不一样 lngDataID = WAV_DATA
FileWrite hFOut, VarPtr(lngDataID), 4 lngData = FileLength(hFOut) - (FilePosition(hFOut) + 4)
FileWrite hFOut, VarPtr(lngData), 4
End Sub