一种确保在WinCE系统中传输.wav文件完整性方法.docVIP

一种确保在WinCE系统中传输.wav文件完整性方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种确保在WinCE系统中传输.wav文件完整性方法

一种确保在WinCE系统中传输.wav文件完整性的方法   摘 要: 使用WinCE系统的智能手持终端,在不稳定的无线网络环境中使用UDP协议发送wav格式的音频文件时,另一台WinCE智能设备接收到的文件经常是不完整的,导致文件无法播放。针对这种网络数据丢包现象,研究提高UDP协议可靠性的设计思路和实现方法,发现.wav文件头中标识文件属性的数据无法与接收到的文件数据实体对应,是造成无法正常播放的根本原因,因此对接收的文件的文件头进行校正和复原工作,保证头文件的各标识位对应数据的正确性,确保接收的声音文件能正常播放。最后在嵌入式开发环境中进行了实现,验证了这种方法的有效性。   关键词: WinCE; UDP; wav文件; 智能手持终端   中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2015)10?0049?03   0 引 言   WinCE是一个开放的嵌入式操作系统,是一种应用于手持智能终端的成熟的操作系统。在数据传输网络中,UDP协议与其他协议相比,在速度上有一定的优势,但也存在传输可靠性差的问题,因为UDP协议不提供数据传送的保证机制。如果从发送方到接收方的传递过程中出现数据包的丢失,协议本身并不能做出任何检测或提示,也不进行恢复。所以要想提高UDP协议的可靠性与安全性,就必须增加差错处理、拥塞控制和安全控制等机制。在采用WinCE系统的手持智能设备中,由于经常是在不稳定的无线网络环境中使用,当上层应用程序使用UDP协议传输wav音频文件时,另一台设备接收到的wav音频文件由于丢包,经常无法正常播放,就失去了发送wav文件的意义。针对这种现象,研究使用WinCE系统的智能设备如何采用一种简便易行的方法,保证wav文件能正常播放。   1 发送与接收过程分析   通过对UDP协议的研究,发现使用UDP协议在网络传输过程中丢包是造成wav文件有损传输的主要原因;凡是不能正常播放的wav文件,其文件头中标识文件属性的数据无法与接收到的wav文件数据实体对应 [1]。   WinCE系统使用UDP协议发送与接收wav文件,需要开启两个线程[2],一个线程处理发送业务,一个线程处理接收业务。发送业务的处理主要是从麦克风获取的wav文件进行处理,在发送之前抛弃wav文件的文件头。这个处理过程的流程如图1所示。      图1 发送线程的处理流程   接收线程的主要是完成wav文件的接收。在接收之前需要先创建wav文件头,然后把接收接收的数据放到已创建的wav头之后,等待接收完成后对wav文件头校正,保证wav文件的头中的信息与wav文件是对应的[3?4]。接收线程的处理流程如图2所示。      图2 接收线程的处理流程   2 发送接收文件的实现过程   2.1 使用UDP协议发送之前的处理   通过对wav文件格式的研究发现,其文件头的大小是44个字节,为了使处理更简单,在开始传输之前,先要将wav文件读入文件流中,舍弃文件头的44个字节,从44个字节之后开始传输[5?6],主要实现代码如下:   FileStream SoundStream = new FileStream(SoundPath, FileMode.Open); //创建文件流   SoundStream.Seek(44, SeekOrigin.Begin);   //将文件流的开始位置放到第44个字节之后   2.2 使用UDP协议接收过程   缺失了wav文件头的音频文件无法在WinCE设备上播放,在接收到音频文件之前需要创建wav文件头,在接收的过程中再把接收到的音频数据写入到创建的文件头后面[7?9]。   ///   ///创建wav文件   ///   ///   private void CreatewaveFile(string strFileName)   {   fswav = new FileStream(strFileName, FileMode.CreateNew);   mWriter = new BinaryWriter(fswav);   char[] ChunkRiff = { ′R′, ′I′, ′F′, ′F′ };   char[] ChunkType = { ′W′, ′A′, ′V′, ′E′ };   char[] ChunkFmt = { ′f′, ′m′, ′t′, ′ ′ };   char[] ChunkData = { ′d′, ′a′, ′t′, ′a′ };   short shPad = 1;   int nFormatChunkLength = 0x10;   int nLe

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档