一种音频播放方法、虚拟化操作系统、设备及存储介质与流程

未命名 08-15 阅读:113 评论:0


1.本发明涉及计算机技术领域,尤其涉及一种音频播放方法、虚拟化操作系统、设备及存储介质。


背景技术:

2.硬件虚拟化是一种对计算机或操作系统的虚拟,对用户隐藏了真实的计算机硬件,表现出另一个抽象计算平台。硬件虚拟化技术允许多个操作系统或者虚拟机同时运行在同一套硬件平台上。
3.当多个操作系统或者虚拟机同时运行在同一套硬件平台上时,由于各个操作系统或者虚拟机都可以创建各自的虚拟音频设备,因此当多个操作系统或者虚拟机同时播放声音时,往往会造成混乱,影响用户使用体验。


技术实现要素:

4.本发明提供了一种音频播放方法、虚拟化操作系统、设备及存储介质,以避免同一硬件平台上的多个操作系统或者虚拟机在播放音频时互相影响。
5.根据本发明的一方面,提供了一种音频播放方法,所述方法应用于虚拟化操作系统,所述虚拟化操作系统包括用户级虚拟机、管理级虚拟机、音频前端驱动和音频后端驱动,所述方法包括:
6.通过所述用户级虚拟机产生音频事件,并将所述音频事件发送到所述音频前端驱动;
7.通过所述音频前端驱动将所述音频事件发送给所述音频后端驱动,并通过所述音频后端驱动解析所述音频事件,得到所述音频事件对应的目标逻辑声卡、音频数据与事件类型;
8.通过所述管理级虚拟机获取当前播放音频的当前逻辑声卡,比较所述目标逻辑声卡与所述当前逻辑声卡的优先级,若所述目标逻辑声卡的优先级低于所述当前逻辑声卡,且所述事件类型为播放,则将所述音频数据的目标播放音量确定为零,令所述音频数据以所述目标播放音量进行播放。
9.进一步地,每个所述用户级虚拟机对应一个或多个逻辑声卡,每个所述逻辑声卡对应一个所述用户级虚拟机。
10.进一步地,比较所述目标逻辑声卡与所述当前逻辑声卡的优先级,包括:
11.获取预设的逻辑声卡优先级顺序;
12.根据所述预设的逻辑声卡优先级顺序确定所述目标逻辑声卡与所述当前逻辑声卡的优先级比较结果。
13.进一步地,根据所述预设的逻辑声卡优先级顺序确定所述目标逻辑声卡与所述当前逻辑声卡的优先级比较结果,包括:
14.分别获取所述目标逻辑声卡与所述当前逻辑声卡对应的序号;
15.若所述目标逻辑声卡的序号小于所述当前逻辑声卡的序号,则所述优先级比较结果为所述目标逻辑声卡的优先级高于所述当前逻辑声卡;若所述目标逻辑声卡的序号大于所述当前逻辑声卡的序号,则所述优先级比较结果为所述目标逻辑声卡的优先级低于所述当前逻辑声卡;若所述目标逻辑声卡的序号等于所述当前逻辑声卡的序号,则所述优先级比较结果为所述目标逻辑声卡的优先级等于所述当前逻辑声卡;其中,所述预设的逻辑声卡优先级顺序为:各逻辑声卡的优先级高低按照对应序号的大小从小到大排列。
16.进一步地,令所述音频数据以所述目标播放音量进行播放,包括:
17.将所述音频数据通过所述目标逻辑声卡发送给物理声卡;
18.令所述物理声卡以所述目标播放音量播放所述音频数据。
19.进一步地,比较所述目标逻辑声卡与所述当前逻辑声卡的优先级之后,还包括:
20.若所述目标逻辑声卡的优先级高于或等于所述当前逻辑声卡,且所述事件类型为播放,则令所述音频数据以当前音频播放音量进行播放。
21.进一步地,比较所述目标逻辑声卡与所述当前逻辑声卡的优先级之后,还包括:
22.若所述目标逻辑声卡的优先级高于或等于所述当前逻辑声卡,且所述事件类型为结束或暂停,则停止当前音频播放。
23.根据本发明的另一方面,提供了一种虚拟化操作系统,包括:用户级虚拟机、管理级虚拟机、音频前端驱动和音频后端驱动;
24.所述用户级虚拟机用于产生音频事件,并将所述音频事件发送到所述音频前端驱动;
25.所述音频前端驱动用于将所述音频事件发送给所述音频后端驱动;
26.所述音频后端驱动用于解析所述音频事件,得到所述音频事件对应的目标逻辑声卡、音频数据与事件类型;
27.所述管理级虚拟机用于获取当前播放音频的当前逻辑声卡,比较所述目标逻辑声卡与所述当前逻辑声卡的优先级,若所述目标逻辑声卡的优先级低于所述当前逻辑声卡,且所述事件类型为播放,则将所述音频数据的目标播放音量确定为零,令所述音频数据以所述目标播放音量进行播放。
28.可选的,每个所述用户级虚拟机对应一个或多个逻辑声卡,每个所述逻辑声卡对应一个所述用户级虚拟机。
29.可选的,管理级虚拟机还用于:
30.获取预设的逻辑声卡优先级顺序;
31.根据所述预设的逻辑声卡优先级顺序确定所述目标逻辑声卡与所述当前逻辑声卡的优先级比较结果。
32.可选的,管理级虚拟机还用于:
33.分别获取所述目标逻辑声卡与所述当前逻辑声卡对应的序号;
34.若所述目标逻辑声卡的序号小于所述当前逻辑声卡的序号,则所述优先级比较结果为所述目标逻辑声卡的优先级高于所述当前逻辑声卡;若所述目标逻辑声卡的序号大于所述当前逻辑声卡的序号,则所述优先级比较结果为所述目标逻辑声卡的优先级低于所述当前逻辑声卡;若所述目标逻辑声卡的序号等于所述当前逻辑声卡的序号,则所述优先级比较结果为所述目标逻辑声卡的优先级等于所述当前逻辑声卡;其中,所述预设的逻辑声
卡优先级顺序为:各逻辑声卡的优先级高低按照对应序号的大小从小到大排列。
35.可选的,管理级虚拟机还用于:
36.将所述音频数据通过所述目标逻辑声卡发送给物理声卡;
37.令所述物理声卡以所述目标播放音量播放所述音频数据。
38.可选的,管理级虚拟机还用于若所述目标逻辑声卡的优先级高于或等于所述当前逻辑声卡,且所述事件类型为播放,则令所述音频数据以当前音频播放音量进行播放。
39.可选的,管理级虚拟机还用于若所述目标逻辑声卡的优先级高于或等于所述当前逻辑声卡,且所述事件类型为结束或暂停,则停止当前音频播放。
40.根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
41.至少一个处理器;以及
42.与所述至少一个处理器通信连接的存储器;其中,
43.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的音频播放方法。
44.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的音频播放方法。
45.本发明公开的音频播放方法,应用于虚拟化操作系统,虚拟化操作系统包括用户级虚拟机、管理级虚拟机、音频前端驱动和音频后端驱动。本方法首先通过用户级虚拟机产生音频事件,并将音频事件发送到音频前端驱动;然后通过音频前端驱动将音频事件发送给音频后端驱动,并通过音频后端驱动解析音频事件,得到音频事件对应的目标逻辑声卡、音频数据与事件类型;最后通过管理级虚拟机获取当前播放音频的当前逻辑声卡,比较目标逻辑声卡与当前逻辑声卡的优先级,若目标逻辑声卡的优先级低于当前逻辑声卡,且事件类型为播放,则将音频数据的目标播放音量确定为零,令音频数据以所述目标播放音量进行播放。本发明提供的音频播放方法,利用管理级虚拟机实现整体音频播放策略,通过设定用于音频播放的各逻辑声卡的优先级,并将各逻辑声卡分配给不同的用户级虚拟机,可以避免多个用户级虚拟机同时播放音频时互相干扰。
46.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
47.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1是根据本发明实施例一提供的一种音频播放方法的流程图;
49.图2是根据本发明实施例一提供的一种用户级虚拟机与管理级虚拟机的结构示意图;
50.图3是根据本发明实施例二提供的一种音频播放方法的流程图;
51.图4是根据本发明实施例二提供的一种管理级虚拟机的控制流程示意图;
52.图5为根据本发明实施例三提供的一种虚拟化操作系统的结构示意图;
53.图6是实现本发明实施例四的音频播放方法的电子设备的结构示意图。
具体实施方式
54.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
55.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
56.实施例一
57.图1为本发明实施例一提供的一种音频播放方法的流程图,本实施例可适用于利用同一硬件平台上的多个虚拟机进行音频播放的情况,该方法应用于虚拟化操作系统,虚拟化操作系统包括用户级虚拟机、管理级虚拟机、音频前端驱动和音频后端驱动,该虚拟化操作系统可以采用硬件和/或软件的形式实现,该虚拟化操作系统可配置于电子设备中。如图1所示,该方法包括:
58.s110、通过用户级虚拟机产生音频事件,并将音频事件发送到音频前端驱动。
59.其中,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机可以分为用户级虚拟机和管理级虚拟机,其中管理级虚拟机具有很高的特权,包含所有与硬件对话的驱动,用户级虚拟机不能直接访问硬件,只能通过管理级虚拟机进行间接访问。因此,用户级虚拟机产生的音频事件需要通过管理级虚拟机访问可以将数字信号转换成声波的声卡硬件进行播放。
60.进一步地,音频事件是用户级虚拟机响应音频控制指令产生的相关事件,其中包含了执行该音频事件所需访问的目标逻辑声卡的标识或序号,待播放的音频数据以及音频事件的事件类型(如播放、暂停或结束等)。其中,逻辑声卡是虚拟机中包装成的虚拟声卡,每个逻辑声卡对应物理声卡的一个或多个声道,在播放音频时需要通过逻辑声卡将音频数据发送给物理声卡。
61.可选的,本实施例中的管理级虚拟机与用户级虚拟机可以基于xen技术运行。xen是一种开源虚拟化技术,在xen中,虚拟机叫做“domain”,其中,管理级虚拟机可以表示为domain0,用户级虚拟机可以表示为domainu。
62.在本实施例中,音频事件由用户级虚拟机产生,之后用户级虚拟机将其发送给音频前端驱动。其中,音频前端驱动是位于用户级虚拟机上的音频驱动程序。
63.优选地,每个用户级虚拟机都包含一个音频前端驱动,音频前端驱动处于内核态,用于将音频事件发送给音频后端驱动。
64.s120、通过音频前端驱动将音频事件发送给音频后端驱动,并通过音频后端驱动解析音频事件,得到音频事件对应的目标逻辑声卡、音频数据与事件类型。
65.其中,音频后端驱动是位于管理级虚拟机上的音频驱动程序。
66.在本实施例中,所有用户级虚拟机与管理级虚拟机运行在同一套硬件设备上,管理级虚拟机可以对一个或多个用户级虚拟机的音频播放进行管理,各用户级虚拟机皆创建了各自的用于生成音频事件的虚拟音频设备,并通过管理级虚拟机控制真实的物理声卡。用户级虚拟机产生音频事件之后,将音频事件发送给音频前端驱动,音频前端驱动再将音频事件发送给音频后端驱动,音频后端驱动对接收到的音频事件进行解析,可以得到该事件对应的目标逻辑声卡、音频数据以及事件类型。
67.优选地,每个用户级虚拟机对应一个或多个逻辑声卡,每个逻辑声卡对应一个用户级虚拟机。在此情况下,不同的用户级虚拟机之间对应的逻辑声卡均不同,每个用户级虚拟机生成的音频事件只能访问与自身对应的逻辑声卡。同时,不同的逻辑声卡对应的物理声卡的声道也不同,从而保证了当多个用户级虚拟机同时播放声音时不会产生混乱。
68.图2是本发明实施例提供的一种用户级虚拟机与管理级虚拟机的结构示意图。如图所示,管理级虚拟机domain0包含4个逻辑声卡(分别表示为out0~out3),其中,out0由channel0和channel1组成,out1由channel2和channel3组成,out2由channel4和channel5组成,out3由channel6和channel7组成,其中,channel0~channel7是物理声卡的8个不同的声道。domain1~domain3为3个用户级虚拟机,其中,domain1对应的逻辑声卡为out0和out1,domain2对应的逻辑声卡为out2,domain3对应的逻辑声卡为out3。若domain1产生音频事件,则执行该音频事件的目标逻辑声卡可以是out0或out1,假设目标逻辑声卡是out0,domain1将音频事件通过音频前端驱动发送给音频后端驱动,音频后端驱动对该音频事件进行解析后得到目标逻辑声卡out0,然后domain0可以通过out0去访问物理声卡,执行该音频事件。
69.s130、通过管理级虚拟机获取当前播放音频的当前逻辑声卡,比较目标逻辑声卡与当前逻辑声卡的优先级,若目标逻辑声卡的优先级低于当前逻辑声卡,且事件类型为播放,则将音频数据的目标播放音量确定为零,令音频数据以目标播放音量进行播放。
70.其中,当前逻辑声卡为当前正在执行的音频事件对应的逻辑声卡,目标逻辑声卡为管理级虚拟机当前接收到的音频事件对应的逻辑声卡。
71.在本实施例中,不同的逻辑声卡的优先级不同。优选地,各逻辑声卡的优先级顺序可以预设于管理级虚拟机中,不同的逻辑声卡对应不同的标识,管理级虚拟机解析音频事件得到目标逻辑声卡后,可以确定目标逻辑声卡的目标声卡标识以及当前逻辑声卡的当前声卡标识,根据这两个标识可以查询预设的优先级顺序从而确定目标逻辑声卡与当前逻辑声卡的优先级比较结果。
72.其中,音频事件的事件类型可以包括但不限于播放、结束及暂停。
73.在本实施例中,若管理级虚拟机从音频事件中解析得到的事件类型为播放,则表示需要令物理声卡将音频事件中的音频数据转换为声波。若确定目标逻辑声卡的优先级低于当前逻辑声卡,则将解析出来的音频数据的目标播放音量调整为零,然后访问物理声卡
令其以目标播放音量播放该音频数据。
74.举例说明,不同的用户级虚拟机可能用于不同域的音频事件管理,例如对于车机来说,车载音乐的音频事件与导航语音的音频事件可以来源于不同的用户级虚拟机。在车辆行驶中,导航语音的音频事件的重要性大于车载音乐的音频事件,假设产生这两种音频事件的用户级虚拟机分别为domain1和domain2,则可以令domain1对应的逻辑声卡的优先级高于domain2对应的逻辑声卡。在此情况下,若当车辆正在进行导航语音播报时,管理级虚拟机接收到来自domain2的音频事件,则将解析出的音频数据的目标播放音量调整为零,从而使车载音乐的播放不干扰导航语音。
75.进一步地,比较目标逻辑声卡与当前逻辑声卡的优先级之后,还可以:若目标逻辑声卡的优先级高于或等于当前逻辑声卡,且事件类型为播放,则令音频数据以当前音频播放音量进行播放。
76.在本实施例中,若目标逻辑声卡的优先级高于或等于当前逻辑声卡,且解析出来的事件类型为播放,则获取当前逻辑声卡对应的当前音频播放音量,访问物理声卡令其以当前音频播放音量播放解析出来的音频数据。
77.进一步地,比较目标逻辑声卡与当前逻辑声卡的优先级之后,还可以:若目标逻辑声卡的优先级高于或等于当前逻辑声卡,且事件类型为结束或暂停,则停止当前音频播放。
78.在本实施例中,若目标逻辑声卡的优先级高于或等于当前逻辑声卡,且解析出来的事件类型为结束,则访问物理声卡令其结束当前音频的播放;若解析出来的事件类型为暂停,则访问物理声卡令其暂停当前音频的播放,直到接收到继续播放的信号。
79.本发明实施例公开的音频播放方法,应用于虚拟化操作系统,虚拟化操作系统包括用户级虚拟机、管理级虚拟机、音频前端驱动和音频后端驱动。本方法首先通过用户级虚拟机产生音频事件,并将音频事件发送到音频前端驱动;然后通过音频前端驱动将音频事件发送给音频后端驱动,并通过音频后端驱动解析音频事件,得到音频事件对应的目标逻辑声卡、音频数据与事件类型;最后通过管理级虚拟机获取当前播放音频的当前逻辑声卡,比较目标逻辑声卡与当前逻辑声卡的优先级,若目标逻辑声卡的优先级低于当前逻辑声卡,且事件类型为播放,则将音频数据的目标播放音量确定为零,令音频数据以所述目标播放音量进行播放。本发明提供的音频播放方法,利用管理级虚拟机实现整体音频播放策略,通过设定用于音频播放的各逻辑声卡的优先级,并将各逻辑声卡分配给不同的用户级虚拟机,可以避免多个用户级虚拟机同时播放音频时互相干扰。
80.实施例二
81.图3为本发明实施例二提供的一种音频播放方法的流程图,该方法应用于虚拟化操作系统,所述虚拟化操作系统包括用户级虚拟机、管理级虚拟机、音频前端驱动和音频后端驱动,本实施例为上述实施例中s130的细化。如图3所示,该方法包括:
82.s210、通过管理级虚拟机获取当前播放音频的当前逻辑声卡,获取当前播放音频的当前逻辑声卡,获取预设的逻辑声卡优先级顺序,根据预设的逻辑声卡优先级顺序确定目标逻辑声卡与当前逻辑声卡的优先级比较结果。
83.在本实施例中,每个用户级虚拟机对应一个或多个逻辑声卡,每个逻辑声卡对应一个用户级虚拟机。逻辑声卡优先级顺序可以预设在管理级虚拟机中,管理级虚拟机解析音频事件得到目标逻辑声卡后,可以对照预设的逻辑声卡优先级顺序确定目标逻辑声卡与
当前逻辑声卡的优先级高低。
84.可选的,根据预设的逻辑声卡优先级顺序确定目标逻辑声卡与当前逻辑声卡的优先级比较结果的方式可以是:分别获取目标逻辑声卡与当前逻辑声卡对应的序号;若目标逻辑声卡的序号小于当前逻辑声卡的序号,则优先级比较结果为目标逻辑声卡的优先级高于当前逻辑声卡;若目标逻辑声卡的序号大于当前逻辑声卡的序号,则优先级比较结果为目标逻辑声卡的优先级低于当前逻辑声卡;若目标逻辑声卡的序号等于当前逻辑声卡的序号,则优先级比较结果为目标逻辑声卡的优先级等于当前逻辑声卡;其中,预设的逻辑声卡优先级顺序为:各逻辑声卡的优先级高低按照对应序号的大小从小到大排列。
85.进一步地,若当前没有逻辑声卡在进行音频播放,可以令当前逻辑声卡对应的序号为一个大于各逻辑声卡的序号的设定值。
86.举例说明,假设管理级虚拟机包含4个逻辑声卡,分别表示为out0~out3。将目标逻辑声卡的序号用n表示,则n的取值为n={0,1,2,3},将当前逻辑声卡的序号用m表示,则m的取值为m={0,1,2,3,4},其中,当m=4时表示当前没有逻辑声卡在进行音频播放。将逻辑声卡out0~out3富裕不同的优先级,数字越小,对应的逻辑声卡的优先级越高。
87.s220、若目标逻辑声卡的优先级低于当前逻辑声卡,且事件类型为播放,则将音频数据的目标播放音量确定为零,将音频数据通过目标逻辑声卡发送给物理声卡。
88.在本实施例中,若管理级虚拟机从音频事件中解析得到的事件类型为播放,则表示需要令物理声卡将音频事件中的音频数据转换为声波。若确定目标逻辑声卡的优先级低于当前逻辑声卡,则将解析出来的音频数据的目标播放音量调整为零,然后访问物理声卡令其以目标播放音量播放该音频数据。
89.s230、令物理声卡以目标播放音量播放音频数据。
90.其中,物理声卡是真实的声卡硬件,可以实现声波/数字信号的相互转换,其基本功能是把音频数据加以转换,输出到耳机、扬声器、扩音机、录音机等声响设备,或通过音乐设备数字接口(midi)发出合成乐器的声音。
91.在本实施例中,物理声卡接收到确定了目标播放音量的音频数据后,可以将音频数据转换为目标播放音量的声波信号。
92.进一步地,音频事件的事件类型可以包括但不限于播放、结束及暂停,若目标逻辑声卡的优先级低于当前逻辑声卡,且解析出来的事件类型不是播放,则可以直接将音频数据发送给物理声卡。
93.图4是本发明实施例提供的一种管理级虚拟机的控制流程示意图,如图所示,管理级虚拟机接收到音频事件后,通过解析得到音频数据、事件类型及目标逻辑声卡的序号n,并获取当前播放音频的当前逻辑声卡的序号m。通过对m和n的大小进行比较,若n>m,则目标逻辑声卡的优先级低于当前逻辑声卡,若事件类型为播放,则将音频数据的目标播放音量确定为零,然后将音频数据通过目标逻辑声卡发送给物理声卡。若n≤m,则目标逻辑声卡的优先级高于或等于当前逻辑声卡,若事件类型为结束或暂停,则停止当前音频的播放,令m等于设定值(该设定值大于各逻辑声卡的序号),否则令m=n,将音频数据通过目标逻辑声卡发送给物理声卡,此时不需调整音量。
94.本发明实施例公开的音频播放方法,首先通过管理级虚拟机获取当前播放音频的当前逻辑声卡,获取当前播放音频的当前逻辑声卡,获取预设的逻辑声卡优先级顺序,根据
预设的逻辑声卡优先级顺序确定目标逻辑声卡与当前逻辑声卡的优先级比较结果,若目标逻辑声卡的优先级低于当前逻辑声卡,且事件类型为播放,则将音频数据的目标播放音量确定为零,将音频数据通过目标逻辑声卡发送给物理声卡,最后令物理声卡以目标播放音量播放音频数据。本发明提供的音频播放方法,利用管理级虚拟机实现整体音频播放策略,通过设定用于音频播放的各逻辑声卡的优先级,并将各逻辑声卡分配给不同的用户级虚拟机,可以避免多个用户级虚拟机同时播放音频时互相干扰。
95.实施例三
96.图5为本发明实施例三提供的一种虚拟化操作系统的结构示意图。如图5所示,该装置包括:用户级虚拟机310,音频前端驱动320,音频后端驱动330和管理级虚拟机340。
97.用户级虚拟机310用于产生音频事件,并将音频事件发送到音频前端驱动320。
98.音频前端驱动320用于将音频事件发送给音频后端驱动330。
99.音频后端驱动330用于解析音频事件,得到音频事件对应的目标逻辑声卡、音频数据与事件类型。
100.管理级虚拟机340用于获取当前播放音频的当前逻辑声卡,比较目标逻辑声卡与当前逻辑声卡的优先级,若目标逻辑声卡的优先级低于当前逻辑声卡,且事件类型为播放,则将音频数据的目标播放音量确定为零,令音频数据以目标播放音量进行播放。
101.可选的,每个用户级虚拟机对应一个或多个逻辑声卡,每个逻辑声卡对应一个用户级虚拟机。
102.可选的,管理级虚拟机340还用于:
103.获取预设的逻辑声卡优先级顺序;根据预设的逻辑声卡优先级顺序确定目标逻辑声卡与当前逻辑声卡的优先级比较结果。
104.可选的,管理级虚拟机340还用于:
105.分别获取目标逻辑声卡与当前逻辑声卡对应的序号;若目标逻辑声卡的序号小于当前逻辑声卡的序号,则优先级比较结果为目标逻辑声卡的优先级高于当前逻辑声卡;若目标逻辑声卡的序号大于当前逻辑声卡的序号,则优先级比较结果为目标逻辑声卡的优先级低于当前逻辑声卡;若目标逻辑声卡的序号等于当前逻辑声卡的序号,则优先级比较结果为目标逻辑声卡的优先级等于当前逻辑声卡;其中,预设的逻辑声卡优先级顺序为:各逻辑声卡的优先级高低按照对应序号的大小从小到大排列。
106.可选的,管理级虚拟机340还用于:
107.将音频数据通过目标逻辑声卡发送给物理声卡;令物理声卡以目标播放音量播放音频数据。
108.可选的,管理级虚拟机340还用于若目标逻辑声卡的优先级高于或等于当前逻辑声卡,且事件类型为播放,则令音频数据以当前音频播放音量进行播放。
109.可选的,管理级虚拟机340还用于若目标逻辑声卡的优先级高于或等于当前逻辑声卡,且事件类型为结束或暂停,则停止当前音频播放。
110.本发明实施例所提供的管理级虚拟机可执行本发明任意实施例所提供的音频播放方法,具备执行方法相应的功能模块和有益效果。
111.实施例四
112.图6示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备
旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
113.如图6所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
114.电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
115.处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如音频播放方法。
116.在一些实施例中,音频播放方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的音频播放的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行音频播放方法。
117.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
118.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
119.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
120.为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
121.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
122.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
123.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
124.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

技术特征:
1.一种音频播放方法,其特征在于,所述方法应用于虚拟化操作系统,所述虚拟化操作系统包括用户级虚拟机、管理级虚拟机、音频前端驱动和音频后端驱动,所述方法包括:通过所述用户级虚拟机产生音频事件,并将所述音频事件发送到所述音频前端驱动;通过所述音频前端驱动将所述音频事件发送给所述音频后端驱动,并通过所述音频后端驱动解析所述音频事件,得到所述音频事件对应的目标逻辑声卡、音频数据与事件类型;通过所述管理级虚拟机获取当前播放音频的当前逻辑声卡,比较所述目标逻辑声卡与所述当前逻辑声卡的优先级,若所述目标逻辑声卡的优先级低于所述当前逻辑声卡,且所述事件类型为播放,则将所述音频数据的目标播放音量确定为零,令所述音频数据以所述目标播放音量进行播放。2.根据权利要求1所述的方法,其特征在于,每个所述用户级虚拟机对应一个或多个逻辑声卡,每个所述逻辑声卡对应一个所述用户级虚拟机。3.根据权利要求2所述的方法,其特征在于,比较所述目标逻辑声卡与所述当前逻辑声卡的优先级,包括:获取预设的逻辑声卡优先级顺序;根据所述预设的逻辑声卡优先级顺序确定所述目标逻辑声卡与所述当前逻辑声卡的优先级比较结果。4.根据权利要求3所述的方法,其特征在于,根据所述预设的逻辑声卡优先级顺序确定所述目标逻辑声卡与所述当前逻辑声卡的优先级比较结果,包括:分别获取所述目标逻辑声卡与所述当前逻辑声卡对应的序号;若所述目标逻辑声卡的序号小于所述当前逻辑声卡的序号,则所述优先级比较结果为所述目标逻辑声卡的优先级高于所述当前逻辑声卡;若所述目标逻辑声卡的序号大于所述当前逻辑声卡的序号,则所述优先级比较结果为所述目标逻辑声卡的优先级低于所述当前逻辑声卡;若所述目标逻辑声卡的序号等于所述当前逻辑声卡的序号,则所述优先级比较结果为所述目标逻辑声卡的优先级等于所述当前逻辑声卡;其中,所述预设的逻辑声卡优先级顺序为:各逻辑声卡的优先级高低按照对应序号的大小从小到大排列。5.根据权利要求1所述的方法,其特征在于,令所述音频数据以所述目标播放音量进行播放,包括:将所述音频数据通过所述目标逻辑声卡发送给物理声卡;令所述物理声卡以所述目标播放音量播放所述音频数据。6.根据权利要求1所述的方法,其特征在于,比较所述目标逻辑声卡与所述当前逻辑声卡的优先级之后,还包括:若所述目标逻辑声卡的优先级高于或等于所述当前逻辑声卡,且所述事件类型为播放,则令所述音频数据以当前音频播放音量进行播放。7.根据权利要求1所述的方法,其特征在于,比较所述目标逻辑声卡与所述当前逻辑声卡的优先级之后,还包括:若所述目标逻辑声卡的优先级高于或等于所述当前逻辑声卡,且所述事件类型为结束或暂停,则停止当前音频播放。8.一种虚拟化操作系统,其特征在于,包括:用户级虚拟机、管理级虚拟机、音频前端驱动和音频后端驱动;
所述用户级虚拟机用于产生音频事件,并将所述音频事件发送到所述音频前端驱动;所述音频前端驱动用于将所述音频事件发送给所述音频后端驱动;所述音频后端驱动用于解析所述音频事件,得到所述音频事件对应的目标逻辑声卡、音频数据与事件类型;所述管理级虚拟机用于获取当前播放音频的当前逻辑声卡,比较所述目标逻辑声卡与所述当前逻辑声卡的优先级,若所述目标逻辑声卡的优先级低于所述当前逻辑声卡,且所述事件类型为播放,则将所述音频数据的目标播放音量确定为零,令所述音频数据以所述目标播放音量进行播放。9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的音频播放方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的音频播放方法。

技术总结
本发明公开了一种音频播放方法、虚拟化操作系统、设备及存储介质,所述方法应用于虚拟化操作系统,虚拟化操作系统包括用户级虚拟机、管理级虚拟机、音频前端驱动和音频后端驱动,所述方法包括:通过用户级虚拟机产生音频事件,并将音频事件发送到音频前端驱动;通过音频前端驱动将音频事件发送给音频后端驱动,并通过音频后端驱动解析音频事件,得到音频事件对应的目标逻辑声卡、音频数据与事件类型;通过管理级虚拟机获取当前播放音频的当前逻辑声卡,比较目标逻辑声卡与当前逻辑声卡的优先级,若目标逻辑声卡的优先级低于当前逻辑声卡,且事件类型为播放,则将音频数据的目标播放音量确定为零,令音频数据以目标播放音量进行播放。行播放。行播放。


技术研发人员:郭泉 苏江 刘亮
受保护的技术使用者:亿咖通(湖北)技术有限公司
技术研发日:2023.05.17
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐