CN102685143B - 音频数据的传输方法以及客户端、服务器 - Google Patents
音频数据的传输方法以及客户端、服务器 Download PDFInfo
- Publication number
- CN102685143B CN102685143B CN201210163296.XA CN201210163296A CN102685143B CN 102685143 B CN102685143 B CN 102685143B CN 201210163296 A CN201210163296 A CN 201210163296A CN 102685143 B CN102685143 B CN 102685143B
- Authority
- CN
- China
- Prior art keywords
- audio data
- packets
- audio
- server
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种音频数据的传输方法以及客户端、服务器。本发明实施例提供的一种音频数据的传输方法包括:客户端向服务器发送音频传输开始请求;在服务器根据所述音频传输开始请求准备好接收音频数据后,客户端将所述音频数据的音频数据包采用不间断方式逐包发送至服务器,其中,在所述不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送;在所述音频数据的音频数据包全部发送至服务器之后,客户端向服务器发送音频传输结束请求。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种音频数据的传输方法以及客户端、服务器。
背景技术
随着移动互联网的发展,基于音频技术开发的移动应用越来越多,如基于手机智能操作***之上的各种音频应用,典型的,如社区交友、空间应用、即时通信等与音频技术有关的应用产品,都要求较好的实时音频效果。如何更快速、及时的传输音频数据,已经成为衡量应用性能的重要标准。
现有的音频数据的传输方式,参见图1,主要包括如下处理:客户端向服务器请求传输音频数据,服务器向客户端表示准备就绪,可以开始接收。客户端向服务器发送音频数据包1,在接收到服务器的成功应答后,向服务器发送音频数据包2,接收到服务器的成功应答后,再发送下一个音频数据包,重复操作,直至所有的音频数据包发送完毕。
现有的音频数据传输方式至少具有如下缺陷:
现有方案中在传输音频数据包时,客户端必须在收到服务器对上一音频数据包的响应后才能继续下一个音频数据包的发送,客户端和服务器双方的交互过于频繁,易于造成数据传输中的出错率较高;且由于双方交互次数较多,导致网络中的延时较大,直接降低了音频数据传输的实时效果。
发明内容
本发明提供的一种音频数据的传输方法以及客户端、服务器,以解决现有方案数据传输出错率较高、传输延时较大的问题。
为达到上述目的,本发明实施例采用了如下技术方案:
本发明实施例提供了一种音频数据的传输方法,所述方法包括:
客户端向服务器发送音频传输开始请求;
在服务器根据所述音频传输开始请求准备好接收音频数据后,客户端将所述音频数据的音频数据包采用不间断方式逐包发送至服务器,其中,在所述不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送;
在所述音频数据的音频数据包全部发送至服务器之后,客户端向服务器发送音频传输结束请求。
本发明实施例还提供了一种客户端,所述客户端包括传输发起单元、不间断发送单元和传输结束单元,
所述传输发起单元,用于向服务器发送音频传输开始请求;
所述不间断发送单元,用于在服务器根据所述音频传输开始请求准备好接收音频数据后,将所述音频数据的音频数据包采用不间断方式逐包发送至服务器,其中,在所述不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送;
所述传输结束单元,用于在所述音频数据的音频数据包全部发送至服务器之后,向服务器发送音频传输结束请求。
本发明实施例还提供了一种服务器,所述服务器包括不间断接收单元,用于在根据客户端的音频传输开始请求准备好接收音频数据后,接收客户端采用不间断方式逐包发送的音频数据的音频数据包,其中,在所述不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送;以及,在客户端将所述音频数据的音频数据包全部发送完毕之后,接收客户端发送的音频传输结束请求。
本发明实施例的有益效果是:
本方案通过对音频数据传输的深入分析,提出了一种新的音频传输方式。通过去除客户端发送单个音频数据包时必须等待服务器应答的限制,显著减少了一次音频数据传输中客户端与服务器的交互,提高了交互效率,大大降低了数据传输的出错率,减小了网络延时,保证了音频数据传输的实时性。
附图说明
图1为现有的音频数据的传输方式流程图;
图2为本发明实施例一提供的一种音频数据的传输方法流程示意图;
图3为本发明实施例二提供的一种音频数据的传输方法流程示意图;
图4为本发明实施例三提供的客户端和服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例一提供的一种音频数据的传输方法,参见图2,所述方法包括:
21:客户端向服务器发送音频传输开始请求。
22:在服务器根据所述音频传输开始请求准备好接收音频数据后,客户端将所述音频数据的音频数据包采用不间断方式逐包发送至服务器,其中,在所述不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送。
23:在所述音频数据的音频数据包全部发送至服务器之后,客户端向服务器发送音频传输结束请求。
本发明实施例在传输音频数据时,采用将音频数据分为多个音频数据包,通过传输音频数据包实现音频数据通信的方式。
下面结合图3对本发明实施例二提供的音频数据的传输方法进行说明。图3示出的音频传输流程与图1中的不同,图3中的客户端逐包发送音频数据的过程中,不再需要等待服务器端返回接收成功与否的应答,而是一次性连续地发送完全部数据包后,发送结束请求,通知服务器本次交互已经结束。这种优化后的流程能够简化数据包传输的交互,具体包括如下处理:
31:客户端向服务器发送音频传输开始请求。
上述音频传输开始请求可以为一个请求音频传输的数据包,该数据包中携带指示信息,用于指示待传输的音频数据格式、采样率和每个音频数据包的大小。
32:服务器准备接收数据。
服务器收到音频传输开始请求后,启动与接收音频数据相关的处理单元,并根据上述指示信息判断能否支持本次的数据传输,例如,当服务器能够支持客户端所指示的音频数据格式、采样率和每个音频数据包的大小时,向客户端返回成功的应答,表示准备就绪,可以开始接收音频数据,参见图3中所示的场景;而当服务器对音频传输开始请求的处理出错或者服务器不支持音频传输开始请求中的数据格式时,向客户端返回拒绝传输的应答,该应答中可以包含出错或者拒绝传输的具体原因。客户端可以根据这些具体原因调整后,重新发送音频传输开始请求。
33:客户端发送第一个音频数据包。
客户端接收到服务器的成功应答,获知服务器准备就绪后,发送第一个音频数据包(音频数据包1)。
34:客户端发送第二个音频数据包(音频数据包2)。
在音频数据包1发送完毕后,客户端不等待服务器对音频数据包1的处理,直接发送音频数据包2。即客户端对音频数据包2的发送无需以接收到服务器对音频数据包1的反馈信息为前提。
本实施例中,客户端采用不间断方式将音频数据的所有音频数据包逐包发送至服务器,在这种不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送。
本实施例所发送的音频数据包中包含数据包索引和数据包主体,所述数据包索引用于标识音频数据包和该音频数据包的发送顺序。例如,音频数据包1的数据包索引能够标识出音频数据包1以及音频数据包1的发送顺序为第1个;音频数据包2的数据包索引能够标识出音频数据包2以及音频数据包2的发送顺序为第2个,或者,音频数据包2的发送顺序为在音频数据包1之后。
利用数据包索引保证了在服务器侧能够获知是否成功接收到所有的音频数据包,以及如果未成功接收,根据数据包索引也能够获知未成功接收的音频数据包的序号,则通知客户端重发这些音频数据包。
35:客户端向服务器发送结束通知。
客户端发送完所有的音频数据包后,向服务器发送音频传输结束请求。该音频传输结束请求能够指示客户端所传输的音频数据包的总包数。
36:服务器返回应答。
服务器接收到音频传输结束请求后,检查接收到的音频数据包的包数与上述客户端所指示的总包数是否相等,若相等,表示已经成功接收所有的音频数据包,服务器返回成功应答,关闭相关的处理单元,本次音频数据传输结束;若不相等,表示服务器没有完整接收所有的音频数据包,服务器返回失败应答。如果失败的原因在于客户端的数据发送或者网络传输出现了丢包等,服务器返回的失败应答中包含未成功接收的音频数据包的数据包索引,客户端在接收到失败应答时,重发失败应答中的数据包索引所指示的音频数据包;如果失败的原因在于服务器一侧的处理错误或其他未知原因,服务器记录错误原因,并结束本次数据传输。
进一步的,对于数据的存储,服务器提供了如下的缓存机制:服务器每接收到一个音频数据包,根据该音频数据包的数据包索引将该音频数据包存储在缓存的对应区域中,当缓存中的数据存储量达到预定值时,服务器将缓存中的数据写入数据库,清空缓存并将新接收到的音频数据包存储在清空后的缓存中,循环执行这种操作直至服务器接受完所有的音频数据包。这种缓存机制,有助于对音频数据的快速存取,提高音频数据的解码速率,提高音频数据的实时性。
进一步的,本实施例中服务器不再进行“数据判重”操作,对于客户端重复发送的音频数据包,仅依据数据包索引存储到缓存中指定的对应区域,如果是重复接收到的,即当重复接收到同一音频数据包时,删除之前存储的数据,重新写入最近一次接收到的数据内容。即当客户端先发送了第一音频数据包时,服务器根据第一音频数据包的数据包索引将第一音频数据包存储在缓存的第一区域中,当客户端又重复发送了与第一音频数据包相同的第二音频数据包时,服务器接收到第二音频数据包且第二音频数据包的数据包索引指示将第二音频数据包存储至所述第一区域,则服务器直接删除所述第一区域中已存储的第一音频数据包并将第二音频数据包存储至第一区域。
本方案通过对音频数据传输的深入分析,提出了一种新的音频传输方式。通过去除客户端发送单个音频数据包时必须等待服务器应答的限制,显著减少了一次音频数据传输中客户端与服务器的交互,大大降低了数据传输的出错率,减小了网络延时,保证了音频数据传输的实时性。
本发明实施例三提供了一种客户端,参见图4,所述客户端包括传输发起单元41、不间断发送单元42和传输结束单元43,
所述传输发起单元41,用于向服务器发送音频传输开始请求;
所述不间断发送单元42,用于在服务器根据所述音频传输开始请求准备好接收音频数据后,将所述音频数据的音频数据包采用不间断方式逐包发送至服务器,其中,在所述不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送;
所述传输结束单元43,用于在所述音频数据的音频数据包全部发送至服务器之后,向服务器发送音频传输结束请求。
进一步的,所述每个所述音频数据包中包含数据包索引和数据包主体,所述数据包索引用于标识音频数据包和该音频数据包的发送顺序,该数据包主体用于承载需要传输的音频数据。
本发明实施例还提供了一种服务器,参见图4,所述服务器包括不间断接收单元44,用于在根据客户端的音频传输开始请求准备好接收音频数据后,接收客户端采用不间断方式逐包发送的音频数据的音频数据包,其中,在所述不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送;以及,在客户端将所述音频数据的音频数据包全部发送完毕之后,接收客户端发送的音频传输结束请求。
进一步的,所述音频传输结束请求指示客户端所传输的音频数据包的总包数,每个所述音频数据包中包含数据包索引,
所述服务器还包括传输反馈单元45,用于在接收客户端发送的音频传输结束请求之后,根据所述音频传输结束请求中的总包数判断是否成功接收全部音频数据包,若是,向客户端发送成功应答,结束当前音频数据的传输,若否,向客户端发送失败应答,所述失败应答中包含未成功接收的音频数据包的数据包索引。
本发明实施例中客户端和服务器中各单元的具体工作方式可以参见本发明的方法实施例。
由上所述,本发明实施例通过优化客户端-服务器端双向数据的交互流程,降低了交互成本,可以保证音频传输更快、更及时,并且,双向交互次数减少,也降低了由于网络传输条件,而导致的传输失败的概率。
上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (4)
1.一种音频数据的传输方法,其特征在于,所述方法包括:
客户端向服务器发送音频传输开始请求;
在服务器根据所述音频传输开始请求准备好接收音频数据后,客户端将所述音频数据的音频数据包采用不间断方式逐包发送至服务器,其中,每个所述音频数据包中包含数据包索引和数据包主体,所述数据包索引用于标识音频数据包和该音频数据包的发送顺序,在所述不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送;
服务器每接收到一个音频数据包,根据该音频数据包的数据包索引将该音频数据包存储在缓存的对应区域中;
当缓存中的数据存储量达到预定值时,服务器将缓存中的数据写入数据库,清空缓存并将新接收到的音频数据包存储在清空后的缓存中;
其中,所述根据该音频数据包的数据包索引将该音频数据包存储在缓存的对应区域中包括:
根据第一音频数据包的数据包索引将第一音频数据包存储在缓存的第一区域中;
当接收到第二音频数据包且第二音频数据包的数据包索引指示将第二音频数据包存储至所述第一区域,直接删除所述第一区域中已存储的第一音频数据包并将第二音频数据包存储至第一区域;
在所述音频数据的音频数据包全部发送至服务器之后,客户端向服务器发送音频传输结束请求;所述音频传输结束请求指示客户端所传输的音频数据包的总包数,
在客户端向服务器发送音频传输结束请求之后,所述方法还包括:
服务器根据所述音频传输结束请求中的总包数判断是否成功接收全部音频数据包,若是,向客户端发送成功应答,结束当前音频数据的传输,若否,向客户端发送失败应答,所述失败应答中包含未成功接收的音频数据包的数据包索引;客户端在接收到失败应答时,重发失败应答中的数据包索引所指示的音频数据包。
2.根据权利要求1所述的方法,其特征在于,
所述音频传输开始请求指示待传输的音频数据格式、采样率和每个音频数据包的大小。
3.一种客户端,其特征在于,所述客户端包括传输发起单元、不间断发送单元和传输结束单元,
所述传输发起单元,用于向服务器发送音频传输开始请求;
所述不间断发送单元,用于在服务器根据所述音频传输开始请求准备好接收音频数据后,将所述音频数据的音频数据包采用不间断方式逐包发送至服务器,其中,每个所述音频数据包中包含数据包索引和数据包主体,所述数据包索引用于标识音频数据包和该音频数据包的发送顺序,在所述不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送;其中,所述服务器每接收到一个音频数据包,根据该音频数据包的数据包索引将该音频数据包存储在缓存的对应区域中;当缓存中的数据存储量达到预定值时,服务器将缓存中的数据写入数据库,清空缓存并将新接收到的音频数据包存储在清空后的缓存中;其中,所述根据该音频数据包的数据包索引将该音频数据包存储在缓存的对应区域中包括:根据第一音频数据包的数据包索引将第一音频数据包存储在缓存的第一区域中;当接收到第二音频数据包且第二音频数据包的数据包索引指示将第二音频数据包存储至所述第一区域,直接删除所述第一区域中已存储的第一音频数据包并将第二音频数据包存储至第一区域;
所述传输结束单元,用于在所述音频数据的音频数据包全部发送至服务器之后,向服务器发送音频传输结束请求;所述音频传输结束请求指示客户端所传输的音频数据包的总包数,由服务器根据所述音频传输结束请求中的总包数判断是否成功接收全部音频数据包,若是,向客户端发送成功应答,结束当前音频数据的传输,若否,向客户端发送失败应答,所述失败应答中包含未成功接收的音频数据包的数据包索引;客户端在接收到失败应答时,重发失败应答中的数据包索引所指示的音频数据包。
4.一种服务器,其特征在于,所述服务器包括不间断接收单元,
所述不间断接收单元,用于在根据客户端的音频传输开始请求准备好接收音频数据后,接收客户端采用不间断方式逐包发送的音频数据的音频数据包,其中,在所述不间断方式下,客户端在发送完一个音频数据包后,不等待来自服务器的应答,直接执行下一个音频数据包的发送;并且每接收到一个音频数据包,根据该音频数据包的数据包索引将该音频数据包存储在缓存的对应区域中;当缓存中的数据存储量达到预定值时,将缓存中的数据写入数据库,清空缓存并将新接收到的音频数据包存储在清空后的缓存中;其中,所述根据该音频数据包的数据包索引将该音频数据包存储在缓存的对应区域中包括:根据第一音频数据包的数据包索引将第一音频数据包存储在缓存的第一区域中;当接收到第二音频数据包且第二音频数据包的数据包索引指示将第二音频数据包存储至所述第一区域,直接删除所述第一区域中已存储的第一音频数据包并将第二音频数据包存储至第一区域;以及,在客户端将所述音频数据的音频数据包全部发送完毕之后,接收客户端发送的音频传输结束请求,所述音频传输结束请求指示客户端所传输的音频数据包的总包数,每个所述音频数据包中包含数据包索引;
所述服务器还包括传输反馈单元,用于在接收客户端发送的音频传输结束请求之后,根据所述音频传输结束请求中的总包数判断是否成功接收全部音频数据包,若是,向客户端发送成功应答,结束当前音频数据的传输,若否,向客户端发送失败应答,所述失败应答中包含未成功接收的音频数据包的数据包索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210163296.XA CN102685143B (zh) | 2012-05-23 | 2012-05-23 | 音频数据的传输方法以及客户端、服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210163296.XA CN102685143B (zh) | 2012-05-23 | 2012-05-23 | 音频数据的传输方法以及客户端、服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685143A CN102685143A (zh) | 2012-09-19 |
CN102685143B true CN102685143B (zh) | 2015-02-04 |
Family
ID=46816506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210163296.XA Active CN102685143B (zh) | 2012-05-23 | 2012-05-23 | 音频数据的传输方法以及客户端、服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102685143B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DK3133760T3 (da) * | 2015-08-18 | 2021-02-01 | Gn Hearing As | Fremgangsmåde til udveksling af datapakker mellem en første og en anden bærbar kommunikationsindretning |
CN106302437A (zh) * | 2016-08-11 | 2017-01-04 | 北京云知声信息技术有限公司 | 语音处理方法及装置 |
CN108965426B (zh) * | 2018-07-11 | 2021-11-02 | 深圳市东微智能科技股份有限公司 | 音频***的数据处理方法、装置、计算机设备和存储介质 |
CN112788078B (zh) * | 2019-11-07 | 2023-03-24 | 上海哔哩哔哩科技有限公司 | 数据传输方法、接收装置、发送装置和计算机设备 |
CN111371792A (zh) * | 2020-03-06 | 2020-07-03 | 杭州涂鸦信息技术有限公司 | 一种基于智能音频设备上报拾音数据的方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1741531A (zh) * | 2005-09-07 | 2006-03-01 | 北京中星微电子有限公司 | 一种udp网络传输音频数据方法 |
CN101944982A (zh) * | 2010-08-11 | 2011-01-12 | 南昌市恒鑫电子技术有限公司 | 基于时间驱动滑动窗口协议的流媒体实时转发方法 |
CN101945427A (zh) * | 2009-07-03 | 2011-01-12 | 深圳市融创天下科技发展有限公司 | 一种高效的流媒体传输方法 |
-
2012
- 2012-05-23 CN CN201210163296.XA patent/CN102685143B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1741531A (zh) * | 2005-09-07 | 2006-03-01 | 北京中星微电子有限公司 | 一种udp网络传输音频数据方法 |
CN101945427A (zh) * | 2009-07-03 | 2011-01-12 | 深圳市融创天下科技发展有限公司 | 一种高效的流媒体传输方法 |
CN101944982A (zh) * | 2010-08-11 | 2011-01-12 | 南昌市恒鑫电子技术有限公司 | 基于时间驱动滑动窗口协议的流媒体实时转发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102685143A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1848719B (zh) | 分配位图存储器、产生网络实体间应答的方法及其*** | |
CN102685143B (zh) | 音频数据的传输方法以及客户端、服务器 | |
KR100853700B1 (ko) | 멀티미디어 메시지 전달 방법, 그 시스템, 및 멀티미디어 메시지 서비스 센터 | |
CN103841002B (zh) | 语音传输方法、终端、语音服务器及语音传输*** | |
CN101340268B (zh) | 节点间通信确认机制的实现方法和实现*** | |
CN102892089A (zh) | 消息推送处理方法、装置和*** | |
CN103973421A (zh) | 文件传送方法及装置 | |
CN107959555B (zh) | 一种基于lwaap的数据传输方法、装置及存储介质 | |
CN101073237B (zh) | 用于传送多媒体文件的方法 | |
CN101997661A (zh) | 数据包发送方法、数据包获取方法及装置 | |
CN101197644B (zh) | 多进程数据重传方法和*** | |
CN101977358A (zh) | 一种数据短信的传输方法、装置及设备 | |
CN105743614A (zh) | 数据的传输方法和装置 | |
CN111970092B (zh) | 一种支持可靠性调节的多协议冗余网络异步通信方法 | |
CN104065465A (zh) | 一种报文重传的方法、请求端、响应端以及*** | |
CN111752803A (zh) | 埋点数据收集上报的方法、装置及介质 | |
CN104283800A (zh) | 网关装置、通信***以及流量控制方法 | |
EP3038032A1 (en) | Service message transmitting method and device | |
CN103517225A (zh) | 彩信重试方法及装置 | |
CN203574673U (zh) | 一种消息处理*** | |
CN112328560A (zh) | 一种文件调度方法和*** | |
CN103391521A (zh) | 一种短消息传输的方法、装置及*** | |
CN100576787C (zh) | 一种在维护终端与后台设备之间进行大数据量安全传送的方法 | |
CN102055606B (zh) | 一种业务支撑***中的业务处理方法、***及设备 | |
CN102044912B (zh) | 一种并发巡测批量终端时间的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: Room 810, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Patentee after: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building 6 storey block A room 602 Patentee before: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. |