最近研究了一下web录音程序的实现:
在网页上打开录音程序,录完后自动上传到服务器。利用这种方式实现语言通告,文档评论等功能。
                                    ---客户提出了这种有创意的需求,只好Research一下了。

有两个技术点需要解决:
一。客户端录音程序的开发,编码技术可以采用ActiveX,DotNet Window控件,Flash等。

录音的实现方式有:

1)VB中有个ActiveX控件,MMCControl可以较简单实现录音。
若没有安装VB,则可以google一下,下载OCX控件:MCI32.OCX,下载后注册:regsvr32 /s  "MCI32.OCX" 即可。控件类名为axMMControl,可以在VB。vb.net,c#中使用。
基本代码如下:
开始录音:
MMControl.Notify = False
MMControl.Wait = True
MMControl.Shareable = False
MMControl.DeviceType = "WaveAudio"
MMControl.FileName = "c:\temp\test.wav"  //test.wav必须先存在
MMControl.Command = "Open"
MMControl.Command = "Record"

保存文件:
MMControl.Command = "Stop"
MMControl.Command = "Save"
MMControl.Command = "Close"

2)安装DirectX后,可以直接用DirectSound API开发。
http://www.cnblogs.com/qiufa/archive/2006/12/08/585986.html

这种方式API是最简单直观的,但考虑到要安装50多M的DirectX,暂时放弃。

3)直接调用底层API:

http://www.cnblogs.com/KeithDan/archive/2006/12/19/596833.aspx
http://www.codeproject.com/KB/audio-video/cswavrec.aspx?df=100&forumid=16677&exp=0&select=1107344
http://www.cnblogs.com/sadier/articles/106157.html

二。将录制的文件上传到服务器端
实现方式:
方式1:直接把上传代码嵌入在开发的控件中,但需要解决身份认证问题。可以采用调用web服务上传,采用集成window身份认证,直接使用用当前window登录用户身份调用
web服务。
方式2:录音控件不管上传,只是把声音文件保存到本地硬盘上,用javascript结合fso,XmlHttp上传文件,身份直接采用IE中的登录用户身份。

另外,可以考虑采用Flash来实现,需要服务器端Media Server的支持。貌似Flash Media Server蛮贵的。
参考:
 http://www.nshen.net/blog/article.asp?id=509
这篇文章详细的讲了flash+Media Server实现录制的代码,代码还是比较简单的。

研究继续中。。。

大家有没有做过类似功能或者好的意见?

 其他资料:
CodeProject上关于audio,video的项目:
http://www.codeproject.com/KB/audio-video/
开源的web video实现,采用Flash Media Server 和.net :
http://www.codeproject.com/KB/audio-video/igotmessage.aspx
VB编写录音机:
http://www.cztjb.com.cn/xuesyd/dnxw/recorder.htm

MCI资料:
http://www.devx.com/vb2themax/Tip/18383


posted on 2008-02-22 20:15  jianyi  阅读(17069)  评论(15编辑  收藏  举报