掌桥专利:专业的专利平台
掌桥专利
首页

音频子系统的实现方法、电子设备、计算机可读介质

文献发布时间:2024-04-18 19:58:21


音频子系统的实现方法、电子设备、计算机可读介质

技术领域

本申请实施例涉及通信技术领域,特别涉及音频子系统的实现方法、电子设备、计算机可读介质。

背景技术

目前主流的双操作系统中的音频子系统越来越复杂,双操作系统中的音频子系统同时访问音频硬件时出现访问资源冲突问题,同时两个操作系统同时工作也提高了功耗。

发明内容

本申请实施例提供一种音频子系统的实现方法、电子设备、计算机可读介质。

第一方面,本申请实施例提供一种音频子系统的实现方法,应用于运行有第一操作系统和第二操作系统的移动设备;所述第一操作系统和所述第二操作系统运行在主系统上;所述第一操作系统中的音频子系统包括:第一音频系统框架层;所述第二操作系统中的音频子系统包括:第二音频系统框架层;所述移动设备还包括设置在所述第一操作系统或所述第二操作系统或所述主系统中的音频硬件抽象层;该方法包括:在所述第一音频系统框架层或所述第二音频系统框架层向所述音频硬件抽象层请求音频服务的情况下,所述音频硬件抽象层在预设缓存中查看是否存在对应的音频通道的参数;在在预设缓存中存在对应的音频通道的参数的情况下,所述音频硬件抽象层根据预设缓存中的音频通道的参数为所述第一音频系统框架层或所述第二音频系统框架层提供音频服务。

第二方面,本申请实施例提供一种电子设备,包括:至少一个处理器;存储器,存储器上存储有至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,实现上述任意一种音频子系统的实现方法。

第三方面,本申请实施例提供一种计算机可读介质,计算机可读介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种音频子系统的实现方法。

本申请实施例提供的音频子系统的实现方法,仅提供一个音频硬件抽象层,该音频硬件抽象层被两个操作系统中的音频子系统所共享,解决了双操作系统中的音频子系统同时访问音频硬件时出现访问资源冲突问题,同时减少了一个音频硬件抽象层也就降低了功耗。

附图说明

图1为相关技术中双操作系统的架构示意图;

图2为本申请实施例提供的双操作系统的架构示意图一;

图3为本申请实施例提供的双操作系统的架构示意图二;

图4为本申请一个实施例提供的音频子系统的实现方法的流程图;

图5为本申请实施例的示例1的音频子系统的实现方法的流程图;

图6为本申请实施例的示例2的音频子系统的实现方法的流程图。

具体实施方式

为使本领域的技术人员更好地理解本申请的技术方案,下面结合附图对本申请提供的音频子系统的实现方法、电子设备、计算机可读介质进行详细描述。

在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本申请透彻和完整,并将使本领域技术人员充分理解本申请的范围。

在不冲突的情况下,本申请各实施例及实施例中的各特征可相互组合。

如本文所使用的,术语“和/或”包括至少一个相关列举条目的任何和所有组合。

本文所使用的术语仅用于描述特定实施例,且不意欲限制本申请。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加至少一个其它特征、整体、步骤、操作、元件、组件和/或其群组。

除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本申请的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。

图1为相关技术中双操作系统的架构示意图。如图1所示,相关技术中,移动设备上运行有两个操作系统,具体为操作系统A和操作系统B,操作系统A和操作系统B运行在主系统上。

其中,操作系统A中的音频子系统可以包括:第一音频应用层101、第一音频系统框架层102和第一音频硬件抽象层103。

其中,操作系统B中的音频子系统可以包括:第二音频应用层104、第二音频系统框架层105和第二音频硬件抽象层106。

其中,第一音频应用层101或第二音频应用层104包括具有录音和/或播放功能的所有应用,如播放器应用、录音机应用、电话应用等应用。

其中,第一音频系统框架层102为第一音频应用层提供接口,方便第一音频应用层101中的应用的调用;第二音频系统框架层105为第二音频应用层104提供接口,方便第二音频应用层104中的应用的调用。

其中,第一音频硬件抽象层103对第一音频系统框架层102提供服务,实现对硬件(如耳麦)访问的抽象;第二音频硬件抽象层106对第二音频系统框架层105提供服务,实现对硬件(如耳麦)访问的抽象。

其中,主系统提供硬件的驱动模块107,以保证第一音频硬件抽象层103和第二音频硬件抽象层106与硬件的通信,硬件例如可以是耳麦等。

本申请实施例在图1所述的双操作系统的架构的基础上进行改进,改进后的双操作系统的架构仅包括一个音频硬件抽象层,如图2和图3所示。

如图2所示,两个操作系统具体为第一操作系统和第二操作系统,第一操作系统和第二操作系统运行在主系统上。

其中,第一操作系统中的音频子系统可以包括:第一音频应用层201、第一音频系统框架层202和音频硬件抽象层203。

其中,第二操作系统中的音频子系统可以包括:第二音频应用层204和第二音频系统框架层205。

其中,第一音频应用层201或第二音频应用层204包括具有录音和/或播放功能的所有应用,如播放器应用、录音机应用、电话应用等应用。

其中,第一音频系统框架层202为第一音频应用层201提供接口,方便第一音频应用层201中的应用的调用;第二音频系统框架层205为第二音频应用层204提供接口,方便第二音频应用层204中的应用的调用。

其中,音频硬件抽象层203对第一音频系统框架层202和第二音频系统框架层205提供服务,实现对硬件(如耳麦)访问的抽象。

其中,主系统提供硬件的驱动模块206,以保证音频硬件抽象层与硬件的通信。

需要说明的是,上述音频硬件抽象层203也可以设置在第二操作系统中。

如图3所示,两个操作系统具体为第一操作系统和第二操作系统,第一操作系统和第二操作系统运行在主系统上。

其中,第一操作系统中的音频子系统可以包括:第一音频应用层301和第一音频系统框架层302。

其中,第二操作系统中的音频子系统可以包括:第二音频应用层303和第二音频系统框架层304。

其中,第一音频应用层301或第二音频应用层303包括具有录音和/或播放功能的所有应用,如播放器应用、录音机应用、电话应用等应用。

其中,第一音频系统框架层302为第一音频应用层301提供接口,方便第一音频应用层301中的应用的调用;第二音频系统框架层304为第二音频应用层303提供接口,方便第二音频应用层303中的应用的调用。

其中,主系统包括硬件的驱动模块306和音频硬件抽象层305,驱动模块306用于保证音频硬件抽象层305与硬件的通信。

其中,音频硬件抽象层305对第一音频系统框架层302和第二音频系统框架层304提供服务,实现对硬件(如耳麦)访问的抽象。

下面基于图2和图3两种改进后的双操作系统的架构来描述音频子系统的实现方法。

图4为本申请一个实施例提供的音频子系统的实现方法的流程图。

第一方面,参照图4,本申请一个实施例提供一种音频子系统的实现方法,应用于运行有第一操作系统和第二操作系统的移动设备;第一操作系统和第二操作系统运行在主系统上。

其中,第一操作系统中的音频子系统可以包括:第一音频系统框架层。

其中,第二操作系统中的音频子系统可以包括:第二音频系统框架层。

其中,移动设备还包括设置在第一操作系统或第二操作系统或主系统中的音频硬件抽象层。

该方法可以包括:

步骤400、在第一音频系统框架层或第二音频系统框架层向音频硬件抽象层请求音频服务的情况下,音频硬件抽象层在预设缓存中查看是否存在对应的音频通道的参数。

在一些示例性实施例中,音频服务包括音频数据播放服务。

在一些示例性实施例中,音频服务包括音频数据录制服务。

在一些示例性实施例中,第一操作系统中的音频子系统还包括第一音频应用层,第一音频系统框架层在被第一音频应用层中的应用调用的情况下,向音频硬件抽象层请求音频服务;第二操作系统中的音频子系统还包括第二音频应用层,第二音频系统框架层在被第二音频应用层中的应用调用的情况下,向音频硬件抽象层请求音频服务。

在一些示例性实施例中,第一音频系统框架层在被第一音频应用层中的应用调用的情况下,判断第一操作系统是否为前台系统,在第一操作系统为前台系统的情况下,向音频硬件抽象层请求音频服务;在第一操作系统不是前台系统,即为后台系统的情况下,不向音频硬件抽象层请求音频服务。

在一些示例性实施例中,第二音频系统框架层在被第二音频应用层中的应用调用的情况下,判断第二操作系统是否为前台系统,在第二操作系统为前台系统的情况下,向音频硬件抽象层请求音频服务;在第二操作系统不是前台系统,即为后台系统的情况下,不向音频硬件抽象层请求音频服务。

在一些示例性实施例中,第一音频应用层中的录音应用或播放应用启动的情况下,录音应用或播放应用调用第一音频系统框架层;第二音频应用层中的录音应用或播放应用启动的情况下,录音应用或播放应用调用第二音频系统框架层。

在一些示例性实施例中,播放应用例如可以是电话应用、播放器应用等。

在一些示例性实施例中,预设缓存可以是音频硬件抽象层所在的系统对应的缓存,可以是指电子设备中的缓存。

在一些示例性实施例中,在音频服务包括音频数据播放服务的情况下,对应的音频通道为音频播放通道,音频通道的参数包括音频通道的名称,以及与音频数据播放相关的参数。

在一些示例性实施例中,在音频服务包括音频数据录制服务的情况下,对应的音频通道为音频录制通道,音频通道的参数包括音频通道的名称,以及与音频数据录制相关的参数。

步骤401、在在预设缓存中存在对应的音频通道的参数的情况下,音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供音频服务。

在一些示例性实施例中,在音频服务包括音频数据播放服务的情况下,音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供音频服务包括:音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层播放音频数据。

在一些示例性实施例中,音频硬件抽象层根据预设缓存中的音频通道的参数通过驱动模块驱动硬件为第一音频系统框架层或第二音频系统框架层播放音频数据。

在一些示例性实施例中,在音频服务包括音频数据录制服务的情况下,音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供音频服务包括:音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层录制音频数据。

在一些示例性实施例中,音频硬件抽象层根据预设缓存中的音频通道的参数通过驱动模块驱动硬件为第一音频系统框架层或第二音频系统框架层录制音频数据。

在一些示例性实施例中,在预设缓存中存在对应的音频通道的参数的情况下,音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供音频服务之前,该方法还包括:判断预设缓存中的音频通道是否被占用;在预设缓存中的音频通道没有被占用的情况下,继续执行音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供音频服务的步骤。

在一些示例性实施例中,在在预设缓存中存在对应的音频通道的参数,且预设缓存中的音频通道已被占用的情况下,该方法还包括:在请求音频服务的音频系统框架层所在的操作系统为后台系统,且占用预设缓存中的音频通道的操作系统为前台系统的情况下,等待预设缓存中的音频通道变更为没有被占用后,音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供请求的音频服务。

在一些示例性实施例中,后台系统是指在后台运行的操作系统。

在一些示例性实施例中,在在预设缓存中存在对应的音频通道的参数,且预设缓存中的音频通道已被占用的情况下,该方法还包括:在请求音频服务的音频系统框架层所在的操作系统为前台系统,且占用预设缓存中的音频通道的操作系统为后台系统的情况下,音频硬件抽象层暂停预设缓存中的音频通道中的音频服务,根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供请求的音频服务。

在一些示例性实施例中,前台系统是指在前台运行的操作系统。

在一些示例性实施例中,在在预设缓存中存在对应的音频通道的参数,且预设缓存中的音频通道已被占用的情况下,该方法还包括:在请求音频服务的音频系统框架层所在的操作系统为后台系统,且占用预设缓存中的音频通道的操作系统为后台系统,且请求的音频服务的优先级低于音频通道中的音频服务的优先级的情况下,等待预设缓存中的音频通道变更为没有被占用后,音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供请求的音频服务。

在一些示例性实施例中,在在预设缓存中存在对应的音频通道的参数,且预设缓存中的音频通道已被占用的情况下,该方法还包括:在请求音频服务的音频系统框架层所在的操作系统为后台系统,且占用预设缓存中的音频通道的操作系统为后台系统,且请求的音频服务的优先级高于音频通道中的音频服务的优先级的情况下,音频硬件抽象层暂停预设缓存中的音频通道中的音频服务,根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供请求的音频服务。

在一些示例性实施例中,在在预设缓存中存在对应的音频通道的参数,且预设缓存中的音频通道已被占用的情况下,该方法还包括:在请求音频服务的音频系统框架层所在的操作系统为前台系统,且占用预设缓存中的音频通道的操作系统为前台系统,且请求的音频服务的优先级低于音频通道中的音频服务的优先级的情况下,等待预设缓存中的音频通道变更为没有被占用后,音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供请求的音频服务。

在一些示例性实施例中,在在预设缓存中存在对应的音频通道的参数,且预设缓存中的音频通道已被占用的情况下,该方法还包括:在请求音频服务的音频系统框架层所在的操作系统为前台系统,且占用预设缓存中的音频通道的操作系统为前台系统,且请求的音频服务的优先级高于音频通道中的音频服务的优先级的情况下,音频硬件抽象层暂停预设缓存中的音频通道中的音频服务,根据预设缓存中的音频通道的参数为第一音频系统框架层或第二音频系统框架层提供请求的音频服务。

在一些示例性实施例中,主系统包括:驱动模块;在在预设缓存中不存在对应的音频通道的参数的情况下,该方法还包括:音频硬件抽象层通过驱动模块访问硬件获取音频通道;音频硬件抽象层创建音频通道,预设缓存音频通道的参数。

在一些示例性实施例中,在音频硬件抽象层在预设时间内没有接收到第一音频系统框架层和第二音频系统框架层的音频服务请求的情况下,从预设缓存中删除音频通道的参数,释放音频通道。

在一些示例性实施例中,该方法还包括:在音频硬件抽象层在预设时间内没有接收到第一音频系统框架层和第二音频系统框架层的音频服务请求,且预设缓存中的音频通道在预设时间内均没有被占用的情况下,从预设缓存中删除音频通道的参数,释放音频通道。

本申请实施例提供的音频子系统的实现方法,仅提供一个音频硬件抽象层,该音频硬件抽象层被两个操作系统中的音频子系统所共享,解决了双操作系统中的音频子系统同时访问音频硬件时出现访问资源冲突问题,同时减少了一个音频硬件抽象层也就降低了功耗。

为了更好的理解本申请实施例的音频子系统的实现方法,下面通过2个具体示例给出整个实现过程,所列举示例不用于限定本申请实施例的保护范围。

示例1

本示例描述如图2所示的双操作系统架构下的音频子系统的实现方法,如图5所示,该方法可以包括:

步骤501、第一操作系统的音频子系统中的第一音频应用层中的电话应用启动。

步骤502、电话应用调用第一操作系统的音频子系统中的第一音频系统框架层。

步骤503、第一音频系统框架层向第一操作系统的音频子系统中的音频硬件抽象层请求音频数据播放服务。

步骤504、音频硬件抽象层在预设缓存中查看是否存在对应的音频播放通道的参数;如果在预设缓存中存在对应的音频播放通道的参数,则执行步骤505至步骤510;如果在预设缓存中不存在对应的音频播放通道的参数,则执行步骤511。

步骤505、音频硬件抽象层判断预设缓存中的音频播放通道是否被占用,如果没有被占用,则执行步骤506;如果被占用,则执行步骤507至步骤510。

步骤506、音频硬件抽象层根据预设缓存中的音频播放通道的参数为第一音频系统框架层播放音频数据。

步骤507、音频硬件抽象层判断占用音频通道的操作系统是否为第二操作系统,如果是,则执行步骤508;如果不是,则执行步骤509。

本示例中,假设第一操作系统为前台系统,第二操作系统为后台系统。

步骤508、音频硬件抽象层暂停预设缓存中的音频通道中的音频服务,根据预设缓存中的音频通道的参数为第一音频系统框架层播放音频数据。

步骤509、音频硬件抽象层判断占用音频通道的音频服务是否高于请求的音频服务,如果是,则执行步骤510;如果不是,则执行步骤508。

步骤510、等待预设缓存中的音频通道变更为没有被占用后,音频硬件抽象层根据预设缓存中的音频通道的参数为第一音频系统框架层播放音频数据。

步骤511、音频硬件抽象层通过主系统的驱动模块访问硬件获取音频通道;音频硬件抽象层创建音频通道,预设缓存音频通道的参数。

示例2

本示例描述如图2所示的双操作系统架构下的音频子系统的实现方法,如图6所示,该方法可以包括:

步骤601、第二操作系统的音频子系统中的第二音频应用层中的电话应用启动。

步骤602、电话应用调用第二操作系统的音频子系统中的第二音频系统框架层。

步骤603、第二音频系统框架层向第一操作系统的音频子系统中的音频硬件抽象层请求音频数据播放服务。

步骤604、音频硬件抽象层在预设缓存中查看是否存在对应的音频播放通道的参数;如果在预设缓存中存在对应的音频播放通道的参数,则执行步骤605至步骤610;如果在预设缓存中不存在对应的音频播放通道的参数,则执行步骤611。

步骤605、音频硬件抽象层判断预设缓存中的音频播放通道是否被占用,如果没有被占用,则执行步骤606;如果被占用,则执行步骤607至步骤610。

步骤606、音频硬件抽象层根据预设缓存中的音频播放通道的参数为第二音频系统框架层播放音频数据。

步骤607、音频硬件抽象层判断占用音频通道的操作系统是否为第一操作系统,如果是,则执行步骤608;如果不是,则执行步骤609。

本示例中,假设第一操作系统为前台系统,第二操作系统为后台系统。

步骤608、等待预设缓存中的音频通道变更为没有被占用后,音频硬件抽象层根据预设缓存中的音频通道的参数为第二音频系统框架层播放音频数据。

步骤609、音频硬件抽象层判断占用音频通道的音频服务是否高于请求的音频服务,如果是,则执行步骤608;如果不是,则执行步骤610。

步骤610、音频硬件抽象层暂停预设缓存中的音频通道中的音频服务,根据预设缓存中的音频通道的参数为第二音频系统框架层播放音频数据。

步骤611、音频硬件抽象层通过主系统的驱动模块访问硬件获取音频通道;音频硬件抽象层创建音频通道,预设缓存音频通道的参数。

第二方面,本申请另一个实施例提供一种电子设备(附图未示出),包括:至少一个处理器;存储器,存储器上存储有至少一个程序,当至少一个程序被至少一个处理器执行时,实现上述任意一种音频子系统的实现方法。

其中,处理器为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH)。

在一些实施例中,处理器、存储器通过总线相互连接,进而与计算设备的其它组件连接。

第三方面,本申请另一个实施例提供一种计算机可读介质,计算机可读介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种音频子系统的实现方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储器、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。

本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其它实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本申请的范围的情况下,可进行各种形式和细节上的改变。

相关技术
  • 音频播放方法、装置、电子设备及计算机可读介质
  • 音频播放方法、装置、电子设备及计算机可读介质
  • 音频播放方法、装置、电子设备及计算机可读介质
  • 滑动变焦效果实现方法、装置、电子设备及计算机可读存储介质
  • 耳机通话音频自动切换方法、计算机可读存储介质、电子系统
  • 耳机通话音频自动切换方法、计算机可读存储介质、电子系统
技术分类

06120116481639