- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
手机语音录制器设计
手机语音录制器设计
摘要:基于Symbian系统,采用MVCaEngine的模式及PcM和AMR两种格式,在智能手机上开发音频流录音机,实现正常的音频数据以文件的格式存储于手机中。
关键词:Symbian;音频流;录音机
中图分类号:TN929.53
文献标识码:B
文章编号:1009-9166(2009)026(C)-0056-01
引言:Symbian操作系统的前身是EPOC(Electronic Pieceof Cheese),其原意为“使用电子产品时可以像吃乳酪一样简单”,这就是它在设计时所坚持的理念。
Symbian提供了灵活的UI,用来适应不同的用户需求。目前基j:symbian的用户界面有很多,主要是Series 60/80/90以及UIQ,这其中从功能上来说UIQ作为强大,同时这也是更加贴近智能手机范畴的系统。这种u睹B可以理解为Symbian之上的Shell,它对symbian的界面进行不同的“包装”,同时增加了一些常用的应用程序。
智能手机作为新兴设备正在日趋流行,手机软件的开发技术也日趋成熟,该方向有着日益增长的客户群,也有着日益增长的客户需求。通过对受限设备(指目前的智能终端对OS的支持度)的软件开发,可以更好的锻炼程序员的程序设计功底,培养良好的编程习惯和好的程序设计方法。同时也为智能手机适应未来市场,做一些前瞻性的研发。
一、音频处理
1、录制音频
利用音频输入流实用工具CmdaAudio-InputStream,它提供从声音输入设备流出音频的能力,音频数据必须为PCM16格式,可以指定取样速率和信道数。先通过Open()函数打开音频流,通过setAudioProper-ties()设置取样速率和信道数。并通过传递给观察器的MaiscOpenCom-plete()函数的错误码报告打开操作是否成功。如果流成功打开,利用ReadL()函数传递一个或多个音频缓冲;每次填充缓冲时,调用观察器MaiscBufferCopied()函数,将使用音频缓冲的引用与一个错误码一起传递给客户应用程序。如录音被实用工具stop()函数调用所中断,则对未使用的缓冲,会有一个MaiscBufferCopied()调用,并且错误代码为KerrAbort。当录音完成时,并且用完了填充音频数据的缓冲,则实用工具调用MaiscRecordComplete()函数,错误码为KErrOverrflow。出现这种溢出错误是由于应用程序实用ReadL()提供空缓存的速度不??快。
2、播放音频
利用音频输入流实用工具CmdaAudio-OutputStream,它提供将音频流输出到输出设备的功能。和输入流化一样音频数据的格式同样必须是PCM16,也可以调整音频输出的音量和平衡。先通过Open()函数打开音频流,并通过传递给观察器的MaoscOpenComplete()函数的错误码报告打开操作是否成功。如果流成功打开,利用WriteL()函数将音频缓冲传递给流化实用工具。当声音设备实用完缓冲时,调用观察器MaoscBufferCopied()函数,将使用音频缓冲的引用与一个错误码一起传递给客户应用程序。如成功复制了该缓冲,则错误代码为KErrNone。如缓冲复制到音频流之前调用了实用工具Stop()函数,则对未使用的缓冲,会有一个MaoscBufferCopied()调用,并且错误代码为KErrAbort。当停止向流化工具提供数据,并且队列缓冲用完时,声音设备将下溢。客户程序应用程序会通过观察器MaoscplayComplete()函数调用及错误码KErrUnderflow得到通知。
3、音频存取
本设计只作为原型,保存文件的文件名和路径均使用hardcode写死在代码内不允许客户自定义。断手机剩余存储容量的大小是否比缓冲区总容量大,如小于则提示控件不足,如大于,则继续执行。定义文件,文件的名字和路径均在安装程序时存在于手机内。遍历所有占用的缓冲区将数据拷贝到文件内。
二、控件设计
1、控件显示
在设计中,引用了四个控件iLable,iButtonl,iButton2,iButton3,iLable用来在屏幕上方显示文字提示,诸如:“录音中”,“播放中”,“已停止”,“音频流被占用无法播放”等消息,3个Button用来作为播放,录音,停止的快捷键。iLable从CEikLabel类继承而来,iButton从CEikCommandButtOn类继承而来,均是系统控件。Tint CountComponentControls()用来计算有哪些系统控件。CCoeContml*Compon
文档评论(0)