找回密码
 加入
搜索
查看: 5402|回复: 10

[系统综合] VB录音机转化为AU3(已解决)

  [复制链接]
发表于 2010-10-29 20:31:04 | 显示全部楼层 |阅读模式
本帖最后由 nbmpe 于 2010-11-12 18:45 编辑


录机单源码,用的是WINMM。DLL
前辈们帮转为AU3。最好加上中文注释(咱英文不怎么好,用翻译意思老变。)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

相关帖子

 楼主| 发表于 2010-10-31 11:44:07 | 显示全部楼层
自己顶起来!
发表于 2010-11-1 03:37:05 | 显示全部楼层
动手写了一个,在空间
http://user.qzone.qq.com/780095/blog/1288553943
发表于 2010-11-1 08:30:12 | 显示全部楼层
好像和WINDOWS的录音机有些差距,不过仍然顶一下,我也有写过一个,不过功能比楼上的这个更简单。。。
发表于 2010-11-1 13:25:38 | 显示全部楼层
我也顶一下。你们都很强。
发表于 2010-11-1 14:12:37 | 显示全部楼层
支持,很强,谢谢了。
 楼主| 发表于 2010-11-2 19:26:35 | 显示全部楼层
不错,还有简波显示!
Opt('GUIOnEventMode', 1)
Global $point = 0
$Form1 = GUICreate('录音机 - winmm.dll', 281, 160, -1, -1)
GUISetOnEvent(-3, 'SpecialEvents')
$box = GUICtrlCreateGraphic(0, 8, 281, 107)
GUICtrlSetBkColor($box, 0x222222)
GUICtrlSetColor(-1, 0)
GUICtrlSetGraphic(-1, 6, 0, 107 / 2)
GUICtrlSetGraphic(-1, 2, 281, 107 / 2)
$marker = GUICtrlCreateGraphic(0, 8, 1, 107)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$Start = GUICtrlCreateButton('Start', 0, 120, 89, 33, 0)
GUICtrlSetOnEvent(-1, 'SpecialEvents')
$Stop = GUICtrlCreateButton('Stop', 96, 120, 89, 33, 0)
GUICtrlSetOnEvent(-1, 'SpecialEvents')
$Save = GUICtrlCreateButton('Save', 192, 120, 89, 33, 0)
GUICtrlSetOnEvent(-1, 'SpecialEvents')
GUISetState(@SW_SHOW)
While 1
 Sleep(1000)
WEnd
Func SpecialEvents()
Switch @GUI_CtrlId
Case -3
Exit
Case $Start
__SoundMciSendString('Open New type WaveAudio alias recorder')
__SoundMciSendString('Open New type WaveAudio alias recorderTemp')
__SoundMciSendString('set recorder bitspersample 8');使用8位
__SoundMciSendString('set recorder samplespersec 11025');11025Hz
__SoundMciSendString('set recorder channels 2');立体声(双声道)
__SoundMciSendString('record recorder');开始录音
AdlibRegister('recorder', 10)
Case $Stop
AdlibUnRegister('recorder')
__SoundMciSendString('stop recorder')
Case $Save
AdlibUnRegister('recorder')
__SoundMciSendString('stop recorder')
$Save = FileSaveDialog('', @DesktopDir, '录音文件 (*.wav)', 18, 'test.wav', $Form1)
If Not @error Then __SoundMciSendString('save recorder "' & $Save & '"')
__SoundMciSendString('close recorderTemp')
__SoundMciSendString('close recorder')
EndSwitch
EndFunc   ;==>SpecialEvents
Func recorder()
$level = __SoundMciSendString('status recorderTemp level')
ToolTip($level, 0, 0)
GUICtrlSetGraphic($box, 6, $point, 107 / 2)
GUICtrlSetGraphic($box, 8, 0xFFFFFF)
GUICtrlSetGraphic($box, 2, $point, (107 / 2) + $level / 2)
GUICtrlSetGraphic($box, 2, $point, (107 / 2) - $level / 2)
$point = $point + 1
If $point > 280 Then
GUICtrlDelete($box)
GUICtrlDelete($marker)
$box = GUICtrlCreateGraphic(0, 8, 281, 107)
GUICtrlSetBkColor($box, 0x222222)
GUICtrlSetGraphic(-1, 6, 0, 107 / 2)
GUICtrlSetGraphic(-1, 8, 0xFFFFFF)
GUICtrlSetGraphic(-1, 2, 281, 107 / 2)
GUICtrlSetColor(-1, 0)
GUICtrlSetGraphic(-1, 6, 0, 107 / 2)
GUICtrlSetGraphic(-1, 8, 0xFFFFFF)
GUICtrlSetGraphic(-1, 2, 281, 107 / 2)
$marker = GUICtrlCreateGraphic(0, 8, 3, 107)
GUICtrlSetBkColor(-1, 0xFFFFFF)
$point = 0
EndIf
GUICtrlSetPos($marker, $point, 8)
EndFunc   ;==>recorder
Func __SoundMciSendString($string, $iLen = 65534)
Local $iRet = DllCall('winmm.dll', 'int', 'mciSendString', 'str', $string, 'str', '', 'int', $iLen, 'hwnd', 0)
Return $iRet[2]
EndFunc   ;==>__SoundMciSendString
发表于 2010-11-3 08:30:19 | 显示全部楼层
2k3 表示无法录制。
发表于 2011-5-1 13:34:25 | 显示全部楼层
请问,如果要内录呢?
发表于 2011-5-23 13:13:50 | 显示全部楼层
cool example.thanks~~~~~
发表于 2011-9-29 21:04:14 | 显示全部楼层
请问,如果要内录呢?
雪栀 发表于 2011-5-1 13:34

我也同问,想知道
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-1 06:58 , Processed in 0.080349 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表