提高音频播放质量的方法、音频数据采集方法及系统的制作方法

文档序号:6471925阅读:241来源:国知局
专利名称:提高音频播放质量的方法、音频数据采集方法及系统的制作方法
技术领域
本发明涉及虚拟机技术领域,具体涉及一种提高虚拟机系统音频播放质量的方
法、音频数据采集方法及虚拟机系统。
背景技术
模拟声音在时间上是连续的,而数字音频是一个数据序列,在时间上是断续的。由 于人脑处理信息需要花费一定的时间,因此人类的听觉特性存在时域掩蔽(在时间上相邻 的声音相互之间有掩蔽的现象),因此当数字音频的采样频率达到一定频率时就会感觉声 音是连续的,而当数字音频出现明显的断续,间隔时间超过时域掩蔽时,人耳就能分辨出这 个断续。通常,计算机系统中,声卡每隔10ms获取一次数据,以保证人耳能连贯舒畅地听到 声音。 现有的虚拟化技术中,以模拟方式来使用真实物理设备的虚拟机系统主要包括基 于Xen的虚拟机系统和基于Vmware的虚拟机系统。上述虚拟机系统中,由于存在服务操 作系统或宿主操作系统的调度,因此运行中的客户操作系统是不能完全占用真实的CPU时 间,而客户操作系统中的虚拟声卡仍然是每隔10ms获取一次音频数据,这就会造成一个问 题客户操作系统的虚拟声卡基于客户操作系统的调度每隔10ms获取一次音频数据,但虚 拟机系统并不能保证客户操作系统每隔10ms都能占用到真实的CPU时间,客户操作系统认 为自己仍然是每隔10ms获取一次音频数据,但物理声卡获取到音频数据的真实时间间隔 可能大于10ms,进而导致客户操作系统所播放的声音不能完全连续地被播放。事实上,现有 的虚拟机系统中,在客户操作系统中播放音乐文件时声音性能较差,用户可以听到明显的 剌啦声或者感觉到声音停顿,严重影响了用户体验。

发明内容
本发明实施例所要解决的技术问题是提供一种提高虚拟机系统音频播放质量的 方法、音频数据采集方法及虚拟机系统,提高客户操作系统声音播放性能,改善用户体验。
为解决上述技术问题,本发明实施例提供方案如下
—种虚拟机系统,包括 硬件平台,所述硬件平台至少包括CPU和物理声卡;
运行在所述硬件平台上的虚拟机管理器;以及,
运行在所述虚拟机管理器上的至少一个客户操作系统,
所述客户操作系统包括 前端驱动,用于按照预定时间,获取所述客户操作系统的待播放的音频数据并发
送出去,其中,获取的音频数据量大于所述物理声卡需要播放的音频数据需求量; 所述虚拟机系统还包括一后端驱动,分别与所述前端驱动和所述物理声卡连接,
用于接收并缓存所述音频数据,得到第二音频数据,并将所述第二音频数据发送给所述物
理声卡进行播放。
优选地,上述的虚拟机系统中,还包括 应用程序模块,用于生成所述客户操作系统的待播放的音频数据。
优选地,上述的虚拟机系统中,所述前端驱动包括 获取单元,用于按照预定时间间隔,逐次提取所述客户操作系统的待播放的音频 数据,其中,所述每次提取的音频数据量大于所述物理声卡音频数据需求量;
发送单元,用于将所述获取单元每次提取的音频数据发送给所述后端驱动;
所述后端驱动包括 缓存单元,用于接收并缓存所述前端驱动发送的音频数据; 播放单元,用于根据所述物理声卡的音频播放参数,将缓存单元中的音频数据发 送给所述物理声卡进行播放。 优选地,上述的虚拟机系统中,所述物理声卡音频数据需求量等于所述物理声卡 音频数据播放速率与所述预定时间间隔的乘积。 优选地,上述的虚拟机系统中,所述后端驱动还包括一第一流控单元,用于根据所 述缓存单元中的音频数据量向所述前端驱动发送流量控制消息; 所述前端驱动还包括一第二流控单元,用于接收所述第一流控单元发送的所述流 量控制消息,并根据所述流量控制消息控制所述获取单元执行相应的流量控制处理。
优选地,上述的虚拟机系统中,所述第一流控单元包括 判断单元用于判断所述缓存单元中的数据量是否大于预定的第一阈值以及是否 小于预定的第二阈值,其中,所述第一阈值大于所述第二阈值; 流量控制消息发送单元,用于在所述缓存单元中的数据量大于所述第一阈值时, 向所述前端驱动发送用于请求暂停音频数据发送的第一流量控制消息,以及在所述缓存单 元中的数据量小于所述第二阈值时,向所述前端驱动发送用于请求发送音频数据的第二流 量控制消息,其中,所述第一阈值大于第二阈值;
所述第二流控单元包括 流量控制消息接收单元,用于接收所述第一流量控制消息和/或第二流量控制消 息; 控制单元,用于在接收到所述第一流量控制消息时暂停所述获取单元,以及在接 收到所述第二流量控制消息时重启所述获取单元。 优选地,上述的虚拟机系统中,所述虚拟机系统还包括有一服务操作系统,所述后 端驱动设置在所述服务操作系统或所述虚拟机管理器中。 优选地,上述的虚拟机系统中,所述虚拟机系统还包括有一宿主操作系统,所述后 端驱动设置在所述宿主操作系统或所述虚拟机管理器中。 本发明实施例还提供了一种提高虚拟机系统音频播放质量的方法,所述虚拟机系 统包括一物理声卡和一客户操作系统,所述方法包括 按照预定时间,获取所述客户操作系统的待播放的音频数据并缓存,其中,获取的 音频数据量大于所述物理声卡音频数据需求量; 根据所述物理声卡的音频播放参数,将缓存的音频数据发送给所述物理声卡进行 播放。 优选地,上述方法中,所述客户操作系统的待播放的音频数据是由所述客户操作系统的应用程序生成的。 优选地,上述方法中,所述按照预定时间,获取所述客户操作系统的待播放的音频
数据是按照预定时间间隔,逐次提取所述客户操作系统的待播放的音频数据; 所述物理声卡音频数据需求量等于所述物理声卡音频数据播放速率与所述预定
时间的乘积。
优选地,上述方法中,还包括 根据当前缓存的音频数据量,对所述音频数据的获取执行相应的流量控制处理。
优选地,上述方法中,所述流量控制处理包括 在当前缓存的音频数据量大于预定的第一阈值时,停止获取所述待播放的音频数 据;以及在当前缓存的音频数据量小于预定的第二阈值时,继续获取所述待播放的音频数 据,其中,所述第一阈值大于第二阈值。 优选地,上述方法中,所述虚拟机系统还包括一后端驱动和一设置在所述客户操 作系统中的前端驱动; 进一步由所述前端驱动,每次间隔预定时间间隔,逐次提取客户操作系统的待播 放的音频数据并发送给所述后端驱动;所述后端驱动接收并缓存所述前端驱动发送的音频 数据,并根据所述物理声卡的音频播放参数,将缓存的音频数据发送给所述物理声卡进行 播放。 优选地,上述方法中,所述虚拟机系统还包括一宿主操作系统,进一步将所述后端 驱动设置在所述宿主操作系统或所述虚拟机管理器中。 优选地,上述方法中,所述虚拟机系统还包括有一服务操作系统,进一步将所述后 端驱动设置在所述服务操作系统或所述虚拟机管理器中。 本发明另一实施例还提供了一种虚拟机系统的音频数据采集方法,所述虚拟机系 统包括一音频采集模块和一客户操作系统,所述方法包括
接收并缓存所述音频采集模块采集到的音频数据; 客户操作系统按照预定时间获取所述音频数据,并将获取的音频数据发送至预定 应用程序,其中,获取的音频数据量大于所述预定应用程序正常处理音频数据时所需的数 据量。 优选地,上述方法中,所述预定应用程序接收并缓存所述客户操作系统发送的音 频数据,并对缓存的音频数据进行相应的处理。 优选地,上述方法中,所述预定应用程序是用于保存音频数据的应用程序或用于 播放音频数据的应用程序,所述预定应用程序设置在所述客户操作系统中或者设置在与所 述虚拟机系统连接的远端计算机系统中。 本发明另一实施例还提供了一种虚拟机系统,包括
硬件平台,所述硬件平台至少包括CPU和音频采集模块;
运行在所述硬件平台上的虚拟机管理器;以及,
运行在所述虚拟机管理器上的至少一个客户操作系统, 所述虚拟机系统还包括一后端驱动,与所述音频采集模块连接,用于接收并缓存 所述音频采集模块采集到的音频数据;
所述客户操作系统包括
前端驱动,与所述后端驱动连接,用于按照预定时间,获取所述后端驱动缓存的音频数据并发送至预定应用程序模块,其中,获取的音频数据量大于所述预定应用程序模块正常处理音频数据时所需的数据量。 优选地,上述虚拟机系统中,所述预定应用程序模块设置在所述客户操作 系统中或者设置在与所述虚拟机系统连接的远端计算机系统中。 从以上所述可以看出,本发明实施例提供的一种提高虚拟机系统音频播放质量的
方法、音频数据采集方法及虚拟机系统,当客户操作系统中的某个应用程序播放音频文件
时,前端驱动预取过量的音频数据,然后通过通信通道交给后端驱动,后端驱动再将音频数
据发送到真实的物理声卡进行播放,这样可以保证后端驱动中提前存储了待播放的音频数
据,减少甚至避免了客户操作系统中播放声音出现停顿或延时。本发明实施例中还采用采
用预取数据和流量控制相结合的方法,后端驱动通过流量控制通知前端驱动传递足够或合
适的数据给后端驱动用于播放,从而让真实的声卡能平稳的播放音频数据,避免后端驱动
中数据溢出导致系统出错、以及避免因缓存数据量过少导致播放声音不连续的问题,从而
进一步提高声音播放质量,改善用户体验。本发明实施例还提供了一种音频数据采集方法
及相应的虚拟机系统,提高了音频数据的采集质量。


图1为本发明实施例一
图2为本发明实施例二
图3为本发明实施例二
图4为本发明实施例三
图5为本发明实施例匹
中所述虚拟机系统的结构示意图;中所述虚拟机系统的结构示意图;中提高音频播放质量的方法的流程图;中所述虚拟机系统的结构示意图;中所述虚拟机系统的结构示意图。
具体实施例方式
本发明实施例在虚拟机系统中采用前、后端驱动的结构,前端驱动通过预取适量的音频数据,由后端驱动负责播放音频数据,本发明实施例可以提高客户操作系统声音播放性能,改善用户体验。以下结合附图对本发明的具体实施例作进一步说明。
〈实施例一 > 本实施例以基于Xen的虚拟机系统为例进行说明。 图1为本实施例所述的虚拟机系统,如图1所示,本实施例中虚拟机系统包括 硬件平台IO,所述硬件平台至少包括CPU 102和物理声卡101 ; 运行在所述硬件平台之上的、与硬件平台连接的虚拟机管理器11 ;以及, 运行在虚拟机管理器11上的服务操作系统13和至少一个客户操作系统12。图1
中仅示出了一个客户操作系统。 如图1所示,客户操作系统12又具体包括 应用程序122,用于处理得到客户操作系统12将要播放的音频数据。这里,应用程序可以是任何现有的能够播放音频的应用程序,例如,Windows视窗系统所提供的媒体播放器(Windows Media Player)。该应用程序可以对音频文件进行解码处理,得到待播放的音频数据。
8
前端驱动121,与应用程序122连接,用于按照预定时间间隔,从应用程序122处获取音频数据并发送出去,其中,前端驱动121每次所获取的音频数据量大于物理声卡101音频数据播放速率与所述时间间隔的乘积。 图1中,服务操作系统13中包括一后端驱动131,该后端驱动131分别与所述前端驱动和所述物理声卡连接,用于接收并缓存所述前端驱动121发送的音频数据,并根据所述物理声卡101的音频播放参数,将缓存的音频数据发送给所述物理声卡101进行播放。这里,后端驱动131与真实的物理声卡101连接,它能够根据物理声卡的音频播放参数,确定当前需要播放音频数据的数据量,即后端驱动131可以根据物理声卡的音频播放参数,发送适量的音频数据给物理声卡101用以播放。 这里,前端驱动121用于向客户操作系统12提供一个模拟的声卡驱动,客户操作系统12中所有的音频数据都会经过前端驱动121。服务操作系统13中的后端驱动131相当于一个流媒体播放器,用于缓存从前端驱动121传输过来的音频数据并实时播放。前、后端驱动之间可以通过通信通道(包括网络或者共享内存等方式)进行通信。
较佳的,所述预定时间间隔为10ms。由于虚拟机系统不能保证客户操作系统12每隔10ms能够被调度到,因此,客户操作系统12中的前端驱动121每次预取过量的音频数据并发送给后端驱动131。这里,所述的过量的音频数据是指每次预取的音频数据量大于物理声卡101在所述预定时间间隔中所播放的音频数据量。这样,前端驱动121每次都会获取到过量的音频数据并发送给后端驱动131,后端驱动131的缓存中保存有一部分尚未播放的音频数据,在客户操作系统12的调度间隔大于10ms时,后端驱动131可以继续播放缓存中的音频数据,从而可以避免或减少声音停顿等不良效果的出现,达到改善用户体验的目的。 举例说明前端驱动121的音频数据预取 假设物理声卡的播放参数为播放44. lkHz双声道每声道2字节的音频。此时,客户操作系统中的前端驱动正常情况下每隔10ms获取一次音频数据,每次获取的音频数据量为44. 1*1000*2*2/100 = 1764字节,每秒钟共获取176400字节的音频数据。现有技术中,客户操作系统的音频数据经常不能及时获取到,即每10毫秒少于1764个字节,从而导致声音断续。本实施例采用预取数据的方法,前端驱动提前获取待播放的音频数据,每10毫秒/次获取大于1764字节的音频数据,再发送给服务操作系统中的后端驱动。这样可以保证后端驱动中提前存储了待播放的音频数据,减少甚至避免了客户操作系统中播放声音出现停顿或延时。前端驱动每次预取的音频数据量可以根据客户操作系统的调度周期、后端驱动的缓存大小等因素综合确定,例如,在客户操作系统的调度周期较长,或后端驱动的缓存较大时,可以每次预取的数据量可以适当增大;反之,每次预取的数据量可以适当减小。 需要说明的是,在客户操作系统12中,前端驱动121是基于客户操作系统12的系统时间,按照预定时间间隔从应用程序122处获取音频数据并发送出去。但对于整个虚拟机系统来说,只有在客户操作系统12被调度到后,前端驱动121才能真正地去获取音频数据。因此,前端驱动121会认为它获取音频数据的时间间隔是固定的,而实际上该时间间隔可能随着虚拟机系统的具体调度情况而变化。 以下详细说明本实施例中虚拟机系统中的各个部件之间的数据交互。
当客户操作系统12中的应用程序122播放音频文件需要访问声卡设备时,前端驱动121从应用程序122处获取音频数据。然后,前端驱动121通过VMCall指令(虚拟机管理器从客户操作系统的None-Root运行模式陷入虚拟机管理器的Root运行模式的CPU指令),并使用寄存器或者共享内存将音频数据传送给虚拟机管理器11。虚拟机管理器11通过主动通知方式(例如中断注入)或等待查询方式(例如,后端驱动定时查询或实时查询),通知后端驱动131。后端驱动131获知有客户操作系统12有声卡访问需求后,到存储设备访问数据的寄存器或者共享内存中获取音频数据并缓存。并且,在获取音频数据之后,后端驱动131通过虚拟机管理器11提供的设备调用接口对声卡设备101进行访问,将音频数据发送给物理声卡101进行播放。
〈实施例二 > 本实施例以基于Vmware的虚拟机系统为例进行说明。 图2为本实施例所述虚拟机系统的结构示意图,与图1不同的是,本实施例中后端
驱动131设置在宿主操作系统14(H0S)中,而不是在服务操作系统(S0S)中。除此之外,本
实施例与实施例一中的各个对应模块的功能作用相同,此处不再一一赘述。 另外,由于预取音频数据造成每次前端驱动发送到后端驱动的音频数据总是比实
际播放的音频数据多,当播放连续声音文件时会造成后端驱动中缓存的数据越积越多,当
缓存数据量超出后端驱动的缓存容量时会造成系统出错。因此,本实施例进一步在后端驱
动中增加流量控制,对前端驱动发送过来的等待播放的音频数据总量进行控制。 具体的流量控制方式可以是根据缓存中的音频数据量,当大于第一阈值时后端
驱动通知前端驱动停止预取数据,当小于第二阈值时通知前端驱动继续预取数据。流量控
制方式还可以是仅设置一个阈值,当缓存中的音频数据量大于该阈值时后端驱动通知前
端驱动停止预取数据,当小于该阈值时通知前端驱动继续预取数据。具体的,阈值设置可以
根据当前播放音频的采样率、编码方式、声道数量等灵活调整,在性能和效率间做最佳的权衡。
为此,本实施例所述虚拟机系统中,后端驱动131可以包括
缓存单元,用于接收并缓存所述前端驱动发送的音频数据; 播放单元,用于根据所述物理声卡的音频播放参数,将缓存单元中的音频数据发送给所述物理声卡进行播放;以及, 第一流控单元,用于根据所述缓存单元中的音频数据量向所述前端驱动发送流量控制消息。
前端驱动121可以包括 获取单元,用于按照预定时间间隔,从所述应用程序处获取音频数据,其中,每次所获取的音频数据量大于所述物理声卡音频数据播放速率与所述时间间隔的乘积;
发送单元,用于将所述获取单元每次获取的音频数据发送给所述后端驱动;以及,
第二流控单元,用于接收所述第一流控单元发送的流量控制消息,并根据所述流量控制消息控制所述获取单元执行相应的流量控制处理。
更为具体的,所述第一流控单元包括 判断单元用于判断所述缓存单元中的数据量是否大于预定第一阈值以及是否小于预定的第二阈值;
10
流量控制消息发送单元,用于在所述缓存单元中的数据量大于所述第一阈值时, 向所述前端驱动发送用于请求暂停音频数据发送的第一流量控制消息,以及在所述缓存单 元中的数据量大于所述第二阈值时,向所述前端驱动发送用于请求发送音频数据的第二流 量控制消息,其中,所述第一阈值大于第二阈值;
所述第二流控单元包括 流量控制消息接收单元,用于接收所述第一流量控制消息和/或第二流量控制消 息; 控制单元,用于在接收到所述第一流量控制消息时,暂停所述获取单元以停止获 取所述音频数据,以及在接收到所述第二流量控制消息时,重启所述获取单元以继续获取 所述音频数据。 本实施例中,当客户操作系统中的某个应用程序播放音频文件时,前端驱动预取 音频数据,然后通过通信通道交给后端驱动,后端驱动再将音频数据发送到真实的物理声 卡。后端驱动与真实的物理声卡连接,它总是知道当前需要播放音频数据的数据量,因此, 后端驱动可以通过流量控制通知前端驱动传递足够或合适的数据给后端驱动用于播放,从 而让真实的声卡能平稳的播放音频数据。本实施例中采用预取数据和流量控制相结合的方 法,可以避免后端驱动中数据溢出导致系统出错、以及避免因缓存数据量过少导致播放声 音不连续的问题,从而进一步提高声音播放质量,改善用户体验。 基于上述虚拟机系统,本实施例还提供了一种提高虚拟机系统音频播放质量的方 法,所述虚拟机系统包括一物理声卡,如图3所示,本实施例所述方法包括以下步骤
步骤31,在客户操作系统需要播放音频文件时,通过其中的应用程序对音频文件 进行处理,得到客户操作系统的待播放的音频数据。这里,所述对音频文件进行处理包括对 音频文件进行解码等处理。 步骤32,客户操作系统中的前端驱动,基于本客户操作系统的系统时间,按照预定 时间间隔获取待播放的音频数据并通过虚拟机管理器发送给宿主操作系统中的后端驱动, 其中,每次获取的音频数据量大于所述物理声卡音频数据播放速率与所述时间间隔的乘 积; 步骤33,后端驱动接收并缓存前端驱动发送的音频数据,并根据物理声卡的音频 播放参数,将缓存的音频数据发送给所述物理声卡进行播放。 较佳的,本发明所述方法中,还可以根据当前缓存的音频数据量,对所述音频数据 的获取执行相应的流量控制处理,例如,在当前缓存的音频数据量大于第一阈值时,停止获 取所述客户操作系统的音频数据;以及在当前缓存的音频数据量小于第二阈值时,继续获 取所述客户操作系统的音频数据。
〈实施例三〉 如图4所示,本实施例提供了一种虚拟机系统,与实施例一、二不同的是,本实施 例中,后端驱动131设置在虚拟机管理器11中。而不是在服务操作系统(S0S)或宿主操作 系统(H0S)中。除此之外,本实施例与实施例一、二中的各个对应模块的功能作用相同,此 处不再一一赘述。 上述实施例中,通过前端驱动预取过量音频数据,后端数据将音频数据发送给物 理声卡进行播放,从而提高了虚拟机系统中声音播放质量,改善了用户体验。
〈实施例四〉 在现有的虚拟机系统中,由于存在服务操作系统或宿主操作系统的调度,运行中 的客户操作系统是不能完全占用真实的CPU时间,客户操作系统播放音频数据存在背景 技术中所述的缺点,并且,客户操作系统在对音频数据进行采集处理时也有类似的缺点,例 如,客户操作系统进行录音操作时,接收到的音频数据通常也不连续,导致录音得到的音频 文件通常也会存在着断续的问题;还例如,在用户通过客户操作系统与远端的计算机用户 进行语音聊天时,远端用户所听到的声音连续性也是比较差。 为此,本实施例提供了一种虚拟机系统和采集音频数据的方法,用以改善上述不
足,提高用户体验。本实施例提供了一种虚拟机系统的音频数据采集方法,如图5所示,所
述虚拟机系统具体包括包括一音频采集模块103和一客户操作系统12, 硬件平台IO,所述硬件平台至少包括CPU 10和音频采集模块; 运行在所述硬件平台10上的虚拟机管理器11 ;以及, 运行在所述虚拟机管理器11上的至少一个客户操作系统12, 所述虚拟机系统还包括一后端驱动131,设置在宿主操作系统13中。该后端驱动 131与所述音频采集模块103连接,用于接收并缓存所述音频采集模块103采集到的音频数 据。 所述客户操作系统12包括 前端驱动121,与所述后端驱动103连接,用于按照预定时间,获取所述后端驱动 103缓存的音频数据并发送至预定应用程序模块,其中,获取的音频数据量大于所述预定应 用程序模块正常处理音频数据时所需的数据量。 这里,所述预定应用程序模块设置在所述客户操作系统中或者设置在与所述虚拟 机系统连接的远端计算机系统中。 本实施例提供的一种虚拟机系统的音频数据采集方法,具体包括
接收并缓存所述音频采集模块采集到的音频数据; 客户操作系统按照预定时间获取所述音频数据,并将获取的音频数据发送至预定 应用程序,其中,获取的音频数据量大于所述预定应用程序正常处理音频数据时所需的数 据量。这里,所述预定应用程序首先接收并缓存所述客户操作系统发送的音频数据,然后再 对缓存的音频数据进行相应的处理,例如播放或者保存为音频文件。 优选地,上述预定应用程序是用于保存音频数据的应用程序或用于播放音频数据 的应用程序,所述预定应用程序设置在所述客户操作系统中或者设置在与所述虚拟机系统 连接的远端计算机系统中。 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种虚拟机系统,包括硬件平台,所述硬件平台至少包括CPU和物理声卡;运行在所述硬件平台上的虚拟机管理器;以及,运行在所述虚拟机管理器上的至少一个客户操作系统,其特征在于,所述客户操作系统包括前端驱动,用于按照预定时间,获取所述客户操作系统的待播放的音频数据并发送出去,其中,获取的音频数据量大于所述物理声卡需要播放的音频数据需求量;所述虚拟机系统还包括一后端驱动,分别与所述前端驱动和所述物理声卡连接,用于接收并缓存所述音频数据,得到第二音频数据,并将所述第二音频数据发送给所述物理声卡进行播放。
2. 如权利要求1所述的虚拟机系统,其特征在于,还包括 应用程序模块,用于生成所述客户操作系统的待播放的音频数据。
3. 如权利要求2所述的虚拟机系统,其特征在于,所述前端驱动包括 获取单元,用于按照预定时间间隔,逐次提取所述客户操作系统的待播放的音频数据,其中,所述每次提取的音频数据量大于所述物理声卡音频数据需求量;发送单元,用于将所述获取单元每次提取的音频数据发送给所述后端驱动; 所述后端驱动包括缓存单元,用于接收并缓存所述前端驱动发送的音频数据;播放单元,用于根据所述物理声卡的音频播放参数,将缓存单元中的音频数据发送给 所述物理声卡进行播放。
4. 如权利要求3所述的虚拟机系统,其特征在于,所述物理声卡音频数据需求量等于 所述物理声卡音频数据播放速率与所述预定时间间隔的乘积。
5. 如权利要求l所述的虚拟机系统,其特征在于,所述后端驱动还包括一第一流控单元,用于根据所述缓存单元中的音频数据量向所述 前端驱动发送流量控制消息;所述前端驱动还包括一第二流控单元,用于接收所述第一流控单元发送的所述流量控 制消息,并根据所述流量控制消息控制所述获取单元执行相应的流量控制处理。
6. 如权利要求5所述的虚拟机系统,其特征在于, 所述第一流控单元包括判断单元用于判断所述缓存单元中的数据量是否大于预定的第一阈值以及是否小于 预定的第二阈值,其中,所述第一阈值大于所述第二阈值;流量控制消息发送单元,用于在所述缓存单元中的数据量大于所述第一阈值时,向所 述前端驱动发送用于请求暂停音频数据发送的第一流量控制消息,以及在所述缓存单元中 的数据量小于所述第二阈值时,向所述前端驱动发送用于请求发送音频数据的第二流量控 制消息,其中,所述第一阈值大于第二阈值;所述第二流控单元包括流量控制消息接收单元,用于接收所述第一流量控制消息和/或第二流量控制消息; 控制单元,用于在接收到所述第一流量控制消息时暂停所述获取单元,以及在接收到 所述第二流量控制消息时重启所述获取单元。
7. 如权利要求1所述的虚拟机系统,其特征在于,所述虚拟机系统还包括有一服务操 作系统,所述后端驱动设置在所述服务操作系统或所述虚拟机管理器中。
8. 如权利要求1所述的虚拟机系统,其特征在于,所述虚拟机系统还包括有一宿主操 作系统,所述后端驱动设置在所述宿主操作系统或所述虚拟机管理器中。
9. 一种提高虚拟机系统音频播放质量的方法,所述虚拟机系统包括一物理声卡和一客 户操作系统,其特征在于,所述方法包括按照预定时间,获取所述客户操作系统的待播放的音频数据并缓存,其中,获取的音频 数据量大于所述物理声卡音频数据需求量;根据所述物理声卡的音频播放参数,将缓存的音频数据发送给所述物理声卡进行播放。
10. 如权利要求8所述的方法,其特征在于,所述客户操作系统的待播放的音频数据是 由所述客户操作系统的应用程序生成的。
11. 如权利要求9或10所述的方法,其特征在于,所述按照预定时间,获取所述客户操作系统的待播放的音频数据是按照预定时间间 隔,逐次提取所述客户操作系统的待播放的音频数据;所述物理声卡音频数据需求量等于所述物理声卡音频数据播放速率与所述预定时间 的乘积。
12. 如权利要求11所述的方法,其特征在于,还包括根据当前缓存的音频数据量,对所述音频数据的获取执行相应的流量控制处理。
13. 如权利要求12所述的方法,其特征在于,所述流量控制处理包括 在当前缓存的音频数据量大于预定的第一阈值时,停止获取所述待播放的音频数据;以及在当前缓存的音频数据量小于预定的第二阈值时,继续获取所述待播放的音频数据, 其中,所述第一阈值大于第二阈值。
14. 如权利要求9所述的方法,其特征在于,所述虚拟机系统还包括一后端驱动和一设 置在所述客户操作系统中的前端驱动;进一步由所述前端驱动,每次间隔预定时间间隔,逐次提取客户操作系统的待播放的 音频数据并发送给所述后端驱动;所述后端驱动接收并缓存所述前端驱动发送的音频数 据,并根据所述物理声卡的音频播放参数,将缓存的音频数据发送给所述物理声卡进行播 放。
15. 如权利要求13所述的方法,其特征在于,所述虚拟机系统还包括一宿主操作系统, 进一步将所述后端驱动设置在所述宿主操作系统或所述虚拟机管理器中。
16. 如权利要求13所述的方法,其特征在于,所述虚拟机系统还包括有一服务操作系 统,进一步将所述后端驱动设置在所述服务操作系统或所述虚拟机管理器中。
17. —种虚拟机系统的音频数据采集方法,所述虚拟机系统包括一音频采集模块和一 客户操作系统,其特征在于,所述方法包括接收并缓存所述音频采集模块采集到的音频数据;客户操作系统按照预定时间获取所述音频数据,并将获取的音频数据发送至预定应用 程序,其中,获取的音频数据量大于所述预定应用程序正常处理音频数据时所需的数据量。
18. 如权利要求17所述的方法,其特征在于,所述预定应用程序接收并缓存所述客户操作系统发送的音频数据,并对缓存的音频数据进行相应的处理。
19. 如权利要求17所述的方法,其特征在于,所述预定应用程序是用于保存音频数据 的应用程序或用于播放音频数据的应用程序,所述预定应用程序设置在所述客户操作系统 中或者设置在与所述虚拟机系统连接的远端计算机系统中。
20. —种虚拟机系统,包括硬件平台,所述硬件平台至少包括CPU和音频采集模块; 运行在所述硬件平台上的虚拟机管理器;以及,运行在所述虚拟机管理器上的至少一个客户操作系统,其特征在于, 所述虚拟机系统还包括一后端驱动,与所述音频采集模块连接,用于接收并缓存所述 音频采集模块采集到的音频数据; 所述客户操作系统包括前端驱动,与所述后端驱动连接,用于按照预定时间,获取所述后端驱动缓存的音频数 据并发送至预定应用程序模块,其中,获取的音频数据量大于所述预定应用程序模块正常 处理音频数据时所需的数据量。
21. 如权利要求20所述的虚拟机系统,其特征在于,所述预定应用程序模块设置在所 述客户操作系统中或者设置在与所述虚拟机系统连接的远端计算机系统中。
全文摘要
本发明提供了提高音频播放质量的方法、音频数据采集方法及系统。其中,所述提高音频播放质量的方法包括所述方法包括按照预定时间,获取所述客户操作系统的待播放的音频数据并缓存,其中,获取的音频数据量大于所述物理声卡音频数据需求量;根据所述物理声卡的音频播放参数,将缓存的音频数据发送给所述物理声卡进行播放。按照本发明,可以提高客户操作系统声音播放性能,改善用户体验。
文档编号G06F3/16GK101763238SQ200810241068
公开日2010年6月30日 申请日期2008年12月25日 优先权日2008年12月25日
发明者林洋, 陆见微, 陈实 申请人:北京联想软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1