本发明专利技术提供了提高音频播放质量的方法、音频数据采集方法及系统。其中,所述提高音频播放质量的方法包括:所述方法包括:按照预定时间,获取所述客户操作系统的待播放的音频数据并缓存,其中,获取的音频数据量大于所述物理声卡音频数据需求量;根据所述物理声卡的音频播放参数,将缓存的音频数据发送给所述物理声卡进行播放。按照本发明专利技术,可以提高客户操作系统声音播放性能,改善用户体验。
【技术实现步骤摘要】
本专利技术涉及虚拟机
,具体涉及一种提高虚拟机系统音频播放质量的方法、音频数据采集方法及虚拟机系统。
技术介绍
模拟声音在时间上是连续的,而数字音频是一个数据序列,在时间上是断续的。由 于人脑处理信息需要花费一定的时间,因此人类的听觉特性存在时域掩蔽(在时间上相邻 的声音相互之间有掩蔽的现象),因此当数字音频的采样频率达到一定频率时就会感觉声 音是连续的,而当数字音频出现明显的断续,间隔时间超过时域掩蔽时,人耳就能分辨出这 个断续。通常,计算机系统中,声卡每隔10ms获取一次数据,以保证人耳能连贯舒畅地听到 声音。 现有的虚拟化技术中,以模拟方式来使用真实物理设备的虚拟机系统主要包括基 于Xen的虚拟机系统和基于Vmware的虚拟机系统。上述虚拟机系统中,由于存在服务操 作系统或宿主操作系统的调度,因此运行中的客户操作系统是不能完全占用真实的CPU时 间,而客户操作系统中的虚拟声卡仍然是每隔10ms获取一次音频数据,这就会造成一个问 题客户操作系统的虚拟声卡基于客户操作系统的调度每隔10ms获取一次音频数据,但虚 拟机系统并不能保证客户操作系统每隔10ms都能占用到真实的CPU时间,客户操作系统认 为自己仍然是每隔10ms获取一次音频数据,但物理声卡获取到音频数据的真实时间间隔 可能大于10ms,进而导致客户操作系统所播放的声音不能完全连续地被播放。事实上,现有 的虚拟机系统中,在客户操作系统中播放音乐文件时声音性能较差,用户可以听到明显的 剌啦声或者感觉到声音停顿,严重影响了用户体验。
技术实现思路
本专利技术实施例所要解决的技术问题是提供一种提高虚拟机系统音频播放质量的 方法、音频数据采集方法及虚拟机系统,提高客户操作系统声音播放性能,改善用户体验。 为解决上述技术问题,本专利技术实施例提供方案如下 —种虚拟机系统,包括 硬件平台,所述硬件平台至少包括CPU和物理声卡; 运行在所述硬件平台上的虚拟机管理器;以及, 运行在所述虚拟机管理器上的至少一个客户操作系统, 所述客户操作系统包括 前端驱动,用于按照预定时间,获取所述客户操作系统的待播放的音频数据并发送出去,其中,获取的音频数据量大于所述物理声卡需要播放的音频数据需求量; 所述虚拟机系统还包括一后端驱动,分别与所述前端驱动和所述物理声卡连接,用于接收并缓存所述音频数据,得到第二音频数据,并将所述第二音频数据发送给所述物理声卡进行播放。 优选地,上述的虚拟机系统中,还包括 应用程序模块,用于生成所述客户操作系统的待播放的音频数据。 优选地,上述的虚拟机系统中,所述前端驱动包括 获取单元,用于按照预定时间间隔,逐次提取所述客户操作系统的待播放的音频 数据,其中,所述每次提取的音频数据量大于所述物理声卡音频数据需求量; 发送单元,用于将所述获取单元每次提取的音频数据发送给所述后端驱动; 所述后端驱动包括 缓存单元,用于接收并缓存所述前端驱动发送的音频数据; 播放单元,用于根据所述物理声卡的音频播放参数,将缓存单元中的音频数据发 送给所述物理声卡进行播放。 优选地,上述的虚拟机系统中,所述物理声卡音频数据需求量等于所述物理声卡 音频数据播放速率与所述预定时间间隔的乘积。 优选地,上述的虚拟机系统中,所述后端驱动还包括一第一流控单元,用于根据所 述缓存单元中的音频数据量向所述前端驱动发送流量控制消息; 所述前端驱动还包括一第二流控单元,用于接收所述第一流控单元发送的所述流 量控制消息,并根据所述流量控制消息控制所述获取单元执行相应的流量控制处理。 优选地,上述的虚拟机系统中,所述第一流控单元包括 判断单元用于判断所述缓存单元中的数据量是否大于预定的第一阈值以及是否 小于预定的第二阈值,其中,所述第一阈值大于所述第二阈值; 流量控制消息发送单元,用于在所述缓存单元中的数据量大于所述第一阈值时, 向所述前端驱动发送用于请求暂停音频数据发送的第一流量控制消息,以及在所述缓存单 元中的数据量小于所述第二阈值时,向所述前端驱动发送用于请求发送音频数据的第二流 量控制消息,其中,所述第一阈值大于第二阈值; 所述第二流控单元包括 流量控制消息接收单元,用于接收所述第一流量控制消息和/或第二流量控制消 息; 控制单元,用于在接收到所述第一流量控制消息时暂停所述获取单元,以及在接 收到所述第二流量控制消息时重启所述获取单元。 优选地,上述的虚拟机系统中,所述虚拟机系统还包括有一服务操作系统,所述后 端驱动设置在所述服务操作系统或所述虚拟机管理器中。 优选地,上述的虚拟机系统中,所述虚拟机系统还包括有一宿主操作系统,所述后 端驱动设置在所述宿主操作系统或所述虚拟机管理器中。 本专利技术实施例还提供了一种提高虚拟机系统音频播放质量的方法,所述虚拟机系 统包括一物理声卡和一客户操作系统,所述方法包括 按照预定时间,获取所述客户操作系统的待播放的音频数据并缓存,其中,获取的 音频数据量大于所述物理声卡音频数据需求量; 根据所述物理声卡的音频播放参数,将缓存的音频数据发送给所述物理声卡进行 播放。 优选地,上述方法中,所述客户操作系统的待播放的音频数据是由所述客户操作系统的应用程序生成的。 优选地,上述方法中,所述按照预定时间,获取所述客户操作系统的待播放的音频数据是按照预定时间间隔,逐次提取所述客户操作系统的待播放的音频数据; 所述物理声卡音频数据需求量等于所述物理声卡音频数据播放速率与所述预定时间的乘积。优选地,上述方法中,还包括 根据当前缓存的音频数据量,对所述音频数据的获取执行相应的流量控制处理。 优选地,上述方法中,所述流量控制处理包括 在当前缓存的音频数据量大于预定的第一阈值时,停止获取所述待播放的音频数 据;以及在当前缓存的音频数据量小于预定的第二阈值时,继续获取所述待播放的音频数 据,其中,所述第一阈值大于第二阈值。 优选地,上述方法中,所述虚拟机系统还包括一后端驱动和一设置在所述客户操 作系统中的前端驱动; 进一步由所述前端驱动,每次间隔预定时间间隔,逐次提取客户操作系统的待播 放的音频数据并发送给所述后端驱动;所述后端驱动接收并缓存所述前端驱动发送的音频 数据,并根据所述物理声卡的音频播放参数,将缓存的音频数据发送给所述物理声卡进行 播放。 优选地,上述方法中,所述虚拟机系统还包括一宿主操作系统,进一步将所述后端 驱动设置在所述宿主操作系统或所述虚拟机管理器中。 优选地,上述方法中,所述虚拟机系统还包括有一服务操作系统,进一步将所述后 端驱动设置在所述服务操作系统或所述虚拟机管理器中。 本专利技术另一实施例还提供了一种虚拟机系统的音频数据采集方法,所述虚拟机系 统包括一音频采集模块和一客户操作系统,所述方法包括 接收并缓存所述音频采集模块采集到的音频数据; 客户操作系统按照预定时间获取所述音频数据,并将获取的音频数据发送至预定 应用程序,其中,获取的音频数据量大于所述预定应用程序正常处理音频数据时所需的数 据量。 优选地,上述方法中,所述预定应用程序接收并缓存所述客户操作系统发送的音 频数据,并对缓存的音频数据进行相应的处理。 优选地,上述方法中,所述预定应用程序是用于保存音频数据的应用程序或用于 播放音频数据的应用程序,所述本文档来自技高网...
【技术保护点】
一种虚拟机系统,包括:硬件平台,所述硬件平台至少包括CPU和物理声卡;运行在所述硬件平台上的虚拟机管理器;以及,运行在所述虚拟机管理器上的至少一个客户操作系统,其特征在于,所述客户操作系统包括:前端驱动,用于按照预定时间,获取所述客户操作系统的待播放的音频数据并发送出去,其中,获取的音频数据量大于所述物理声卡需要播放的音频数据需求量;所述虚拟机系统还包括一后端驱动,分别与所述前端驱动和所述物理声卡连接,用于接收并缓存所述音频数据,得到第二音频数据,并将所述第二音频数据发送给所述物理声卡进行播放。
【技术特征摘要】
【专利技术属性】
技术研发人员:林洋,陆见微,陈实,
申请(专利权)人:北京联想软件有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。