CN116991357A - 音频焦点控制方法及装置 - Google Patents
音频焦点控制方法及装置 Download PDFInfo
- Publication number
- CN116991357A CN116991357A CN202310809860.9A CN202310809860A CN116991357A CN 116991357 A CN116991357 A CN 116991357A CN 202310809860 A CN202310809860 A CN 202310809860A CN 116991357 A CN116991357 A CN 116991357A
- Authority
- CN
- China
- Prior art keywords
- service
- audio
- linked list
- audio focus
- focus
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000012545 processing Methods 0.000 claims description 78
- 239000011159 matrix material Substances 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 16
- 238000007726 management method Methods 0.000 description 14
- 230000003993 interaction Effects 0.000 description 10
- 230000002159 abnormal effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000002146 bilateral effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/165—Management of the audio stream, e.g. setting of volume, audio stream path
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请实施例提供一种音频焦点控制方法及装置,该方法包括:若控制单元接收到第一业务发起的音频焦点获取请求,则根据持有者链表中正在持有音频焦点的第二业务,确定是否允许第一业务获取音频焦点。若不允许,则在持有者链表中的第二业务关联有预释放标识的情况下,将第一业务添加至抢占者链表。在第二业务告知已释放音频焦点后,将第二业务从持有者链表删除,并向第一业务发送音频焦点授予指令。将第一业务添加至持有者链表,并将第一业务从抢占者链表删除。本申请的技术方案可以有效的提升业务获取音频焦点的成功率,以及有效的保证音频焦点的有序管理。
Description
技术领域
本申请涉及终端技术领域,尤其涉及音频焦点控制方法及装置。
背景技术
在终端设备中往往存在多个业务都需要播放音频的场景,为了保证多个业务能够有序的进行音频播放,需要对音频焦点进行管理。
一般来说,在单核架构中,需要播放音频的业务可以直接抢占音频焦点从而进行音频播放。然而在多核架构中,负责控制业务逻辑的芯片和负责控制音频硬件的芯片之间首先要进行交互,才能控制音频硬件具体播放哪个业务的音频数据,因此从业务发起音频播放请求到音频硬件播放音频数据会存在一些时延。
因此,在多核架构中,若需要播放音频的业务直接抢占音频焦点,可能会导致音频焦点的管理出现混乱。
发明内容
本申请实施例提供一种音频焦点控制方法,应用于终端技术领域。
第一方面,本申请实施例提出一种音频焦点控制。该方法包括:
若控制单元接收到第一业务发起的音频焦点获取请求,则根据持有者链表中正在持有音频焦点的第二业务,确定是否允许所述第一业务获取音频焦点;
若不允许,则在所述持有者链表中的第二业务关联有预释放标识的情况下,将所述第一业务添加至抢占者链表;
在所述第二业务告知已释放所述音频焦点后,将所述第二业务从所述持有者链表删除,并向所述第一业务发送音频焦点授予指令;
将所述第一业务添加至所述持有者链表,并将所述第一业务从所述抢占者链表删除。
这种实施方式中,通过为要主动释放音频焦点的第二业务关联预释放标识,以使得低优先级的第一业务可以获得音频焦点,从而可以避免出现第二业务已经要释放音频焦点,但是因为还没有处理完音频焦点的释放流程,而导致第一业务申请音频焦点失败的异常情况,有效的提升了业务获取音频焦点的成功率,以及有效的保证音频焦点的有序管理。
在一些实现方式中,所述方法还包括:
在所述第二业务停止音频播放时,所述第二业务向所述控制单元发送音频焦点的预释放请求;
所述控制单元根据所述预释放请求,为所述第二业务关联预释放标识。
在一些实现方式中,终端设备还包括用于控制音频硬件的第二芯片,所述第二芯片中包括音频硬件的驱动单元;
所述第二业务向所述控制单元发送音频焦点的预释放请求之后,所述方法还包括:
所述第二业务向所述驱动单元发送停止播放指令;
所述驱动单元响应于所述停止播放指令,控制所述音频硬件停止播放。
在一些实现方式中,所述驱动单元响应于所述停止播放指令,控制所述音频硬件停止播放之后,所述方法还包括:
所述驱动单元向所述第二业务发送反馈信息,所述反馈信息用于指示所述音频硬件已停止播放。
在一些实现方式中,所述在所述第二业务告知已释放所述音频焦点后,将所述第二业务从所述持有者链表删除,包括:
所述第二业务响应于所述反馈信息,向所述控制单元发送告知信息,所述告知信息用于告知所述第二业务已释放音频焦点;
所述控制单元响应于所述告知信息,将所述第二业务从所述持有者链表删除。
这种实施方式洪,在第二业务要释放音频焦点的时候,第二业务会指示驱动单元停止播放第二业务的音频,在第二业务接收到驱动单元发送的反馈信息,确定驱动单元已经停止播放之后,第二业务才会告知控制单元其已释放音频焦点,然后控制单元才会将第二业务从持有者链表删除,从而可以有效的保证第二业务已释放音频焦点的信息准确性和有效性。
在一些实现方式中,所述向所述第一业务发送音频焦点授予指令之后,所述方法还包括:
所述第一业务向所述驱动单元发送音频播放指令;
所述驱动单元根据所述音频播放指令请求第一业务的音频数据,并控制所述音频硬件播放所述第一业务的音频数据。
在一些实现方式中,将所述第一业务添加至抢占者链表,包括:
根据所述第一业务的优先级以及所述抢占者链表中已存储业务的优先级,将所述第一业务添加至所述抢占者链表;
其中,所述抢占者链表中的各个业务按照优先级从大到小的顺序进行排序。
在一些实现方式中,所述持有者链表的最底端记录有空闲业务;
所述将所述第一业务添加至所述持有者链表,并将所述第一业务从所述抢占者链表删除,包括:
将所述抢占者链表中的各个业务,保持在所述抢占者链表中的顺序整体添加至持有者链表的表头;
删除所述抢占者链表中的各个业务。
这种实施方式中,通过对持有者链表和抢占者链表进行相应的更新,从而可以有效的保证链表中记录的状态的正确性,以及音频焦点的有序管理。
在一些实现方式中,所述根据持有者链表中正在持有音频焦点的第二业务,确定是否允许所述第一业务获取音频焦点,包括:
获取预设矩阵,所述预设矩阵中包括正在持有音频焦点的持有业务和请求持有音频焦点的请求业务之间对于音频焦点的处理策略,所述处理策略包括如下中的至少一种:拒绝所述请求业务获取音频焦点、允许所述请求业务获取音频焦点且所述持有业务释放音频焦点、允许所述请求业务和所述持有业务共享音频焦点;
在所述预设矩阵中查找所述第一业务和所述第二业务之间对于音频焦点的目标处理策略,根据所述目标处理策略,确定是否允许所述第一业务获取音频焦点。
这种实施方式中,通过预设矩阵简单高效的确定是否允许相应的业务抢占音频焦点,而无需各个业务分别进行复杂的维护操作,以及在后续新增业务的时候,直接对预设矩阵进行更新即可,也无需针对各个业务都进行调整,因此可以有效的降低音频焦点的管理复杂性。
第二方面,本申请实施例提供一种音频焦点控制装置。该装置包括:
处理模块,用于若控制单元接收到第一业务发起的音频焦点获取请求,则根据持有者链表中正在持有音频焦点的第二业务,确定是否允许所述第一业务获取音频焦点;
所述处理模块,还用于若不允许,则在所述持有者链表中的第二业务关联有预释放标识的情况下,将所述第一业务添加至抢占者链表;
所述处理模块,还用于在所述第二业务告知已释放所述音频焦点后,将所述第二业务从所述持有者链表删除;
发送模块,用于向所述第一业务发送音频焦点授予指令;
所述处理模块,还用于将所述第一业务添加至所述持有者链表,并将所述第一业务从所述抢占者链表删除。
在一些实现方式中,所述处理模块,还用于
在所述第二业务停止音频播放时,所述第二业务向所述控制单元发送音频焦点的预释放请求;
所述控制单元根据所述预释放请求,为所述第二业务关联预释放标识。
在一些实现方式中,终端设备还包括用于控制音频硬件的第二芯片,所述第二芯片中包括音频硬件的驱动单元;
所述发送模块,还用于:
在所述第二业务向所述控制单元发送音频焦点的预释放请求之后,所述第二业务向所述驱动单元发送停止播放指令;
所述处理模块,还用于:所述驱动单元响应于所述停止播放指令,控制所述音频硬件停止播放。
在一些实现方式中,所述发送模块,还用于:
在所述驱动单元响应于所述停止播放指令,控制所述音频硬件停止播放之后,所述驱动单元向所述第二业务发送反馈信息,所述反馈信息用于指示所述音频硬件已停止播放。
在一些实现方式中,所述处理模块具体用于:
所述第二业务响应于所述反馈信息,向所述控制单元发送告知信息,所述告知信息用于告知所述第二业务已释放音频焦点;
所述处理模块,还用于:所述控制单元响应于所述告知信息,将所述第二业务从所述持有者链表删除。
在一些实现方式中,所述发送模块,还用于:
在所述向所述第一业务发送音频焦点授予指令之后,所述第一业务向所述驱动单元发送音频播放指令;
所述处理模块,还用于:所述驱动单元根据所述音频播放指令请求第一业务的音频数据,并控制所述音频硬件播放所述第一业务的音频数据。
在一些实现方式中,所述处理模块,还用于:
根据所述第一业务的优先级以及所述抢占者链表中已存储业务的优先级,将所述第一业务添加至所述抢占者链表;
其中,所述抢占者链表中的各个业务按照优先级从大到小的顺序进行排序。
在一些实现方式中,所述持有者链表的最底端记录有空闲业务;
所述处理模块具体用于:
将所述抢占者链表中的各个业务,保持在所述抢占者链表中的顺序整体添加至持有者链表的表头;
删除所述抢占者链表中的各个业务。
在一些实现方式中,所述处理模块具体用于:
获取预设矩阵,所述预设矩阵中包括正在持有音频焦点的持有业务和请求持有音频焦点的请求业务之间对于音频焦点的处理策略,所述处理策略包括如下中的至少一种:拒绝所述请求业务获取音频焦点、允许所述请求业务获取音频焦点且所述持有业务释放音频焦点、允许所述请求业务和所述持有业务共享音频焦点;
在所述预设矩阵中查找所述第一业务和所述第二业务之间对于音频焦点的目标处理策略,根据所述目标处理策略,确定是否允许所述第一业务获取音频焦点。
第三方面,本申请实施例提供一种终端设备,终端设备也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobile phone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
该终端设备包括:包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得终端设备执行如第一方面的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序。计算机程序被处理器执行时实现如第一方面的方法。
第五方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面的方法。
第六方面,本申请实施例提供了一种芯片,芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行如第一方面所述的方法。
应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的音频焦点的占用方式示意图;
图2为本申请实施例提供的多业务播放音频的场景示意图一;
图3为本申请实施例提供的多业务播放音频的场景示意图二;
图4为本申请实施例提供的终端设备的软件架构示意图;
图5为本申请实施例提供的音频焦点控制方法的交互流程图;
图6为本申请实施例提供的音频焦点控制方法的交互流程图二;
图7为本申请实施例提供的音频焦点处理的界面变化示意图;
图8为本申请实施例提供的音频焦点管理方法的流程图;
图9为本申请实施例提供的预设矩阵示意图;
图10为本申请实施例提供的音频焦点控制方法的交互流程图三;
图11为本申请实施例提供的业务优先级变化示意图;
图12为本申请实施例提供的链表变化示意图;
图13为本申请实施例提供的音频焦点控制装置的结构示意图;
图14为本申请实施例提供的终端设备的硬件结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
需要说明的是,本申请实施例中的“在……时”,可以为在某种情况发生的瞬时,也可以为在某种情况发生后的一段时间内,本申请实施例对此不作具体限定。此外,本申请实施例提供的显示界面仅作为示例,显示界面还可以包括更多或更少的内容。
为了更好的理解本申请的技术方案,下面对本申请所涉及的相关技术进行进一步的详细介绍。
随着终端设备技术的不断发展,为满足用户的多种需求,在终端设备中通常安装有多个应用程序,一个应用程序中可以包含多个业务,例如在通话的这个应用程序中,可以包括来电铃声的业务,还可以包括通话业务,其中一项业务可以理解为一个应用程序所能够提供的一项功能。
终端设备中的业务可能会需要播放音频,例如来电铃声业务需要播放来电铃声,再例如通话业务需要播放通话内容,再例如音乐播放业务需要播放音乐文件,再例如计时器需要播放提示音,等等。
而且在终端设备中往往存在多个业务同时需要播放音频的场景,那么为了保证多个业务能有序的进行音频播放,可以通过音频焦点进行音频播放的管理。
其中音频焦点是操作系统为了管理音频硬件而引入的概念,用于实现业务(应用)对音频硬件在时间维度上使用控制。一般来说,某一业务申请音频焦点,在申请音频焦点成功后,可以正常播放该音频。该业务的音频播放完成后,则会释放音频焦点,以使其他音频在需要播放音频时可以成功申请到音频焦点。
音频焦点的占用方式可以包括独占音频焦点和共享音频焦点,其中,独占音频焦点指单一业务使用音频硬件进行音频播放,共享音频焦点指两个或两个以上业务同时使用音频硬件进行音频播放,在多个业务同时播放音频时,在音频硬件中会对多个业务的音频数据进行混音。
例如可以参照图1进行理解,图1为本申请实施例提供的音频焦点的占用方式示意图。
如图1所示,例如t1时刻开始音乐业务开始播放音乐,此时音乐业务是独占音频焦点的。
假设在t2时刻计时器业务确定计时到时,从而播放提示音,然后计时器业务和音乐业务在t2~t3这段时间内就共享音频焦点。到t3时刻计时器业务的提示音播放完成了,音乐业务又恢复独占音频焦点。
再假设在t3时刻通话业务需要播放通话音频,其中通话业务只能独占音频焦点,因此在t4~t5这段时间内通话业务独占焦点。到t5时刻通话业务的通话音频播放完成了,音乐业务又恢复独占音频。
目前终端设备存在单核架构,也存在多核架构,其中单核架构也就是说终端设备中只有一个芯片,多核架构也就是说终端设备中有多个芯片。
在单核架构中,若当前存在某一个低优先级的业务正在占用音频焦点进行音频播放,此时有了一个高优先级的业务也需要播放音频,则该高优先级的业务可以直接抢占音频焦点,在高优先级的业务抢占音频焦点之后就可以直接使用音频硬件进行音频播放。
然而在多核架构中,负责控制业务逻辑的芯片和负责控制音频硬件的芯片通常是分开的两个芯片,那么在控制音频硬件具体播放哪个业务的音频数据时,这两个芯片之间就要先进行交互,因此从业务发起音频播放请求到音频硬件播放音频数据会存在一些时延。
具体的,在多核架构中所有的音频播放业务都涉及双核之间的交互,双机通信涉及双边数据传输及各自任务调度处理,所有音频控制指令从负责控制业务逻辑的芯片发出到负责控制音频硬件的芯片执行响应并状态上报有时间差,该时间差还会因为系统当前运行情况变化而变化,任务越繁忙响应时间就越长。
因此在多核架构中,若需要播放音频的业务直接抢占音频焦点,可能会导致音频焦点的管理出现混乱。
下面结合两个场景对此处介绍的技术问题进行说明,图2为本申请实施例提供的多业务播放音频的场景示意图一,图3为本申请实施例提供的多业务播放音频的场景示意图二。
以终端设备是可穿戴设备为例,参照图1,假设t1时刻之前计时器正在播放提示音,计时器正在响铃时来电,在t1时刻来电铃声抢占计时器的音频焦点,以播放来电铃声。再之后用户选择了接听电话,在t2时刻通话抢占计时器的音频焦点,以播放通话语音。
以及参照图2,假设t1时刻之前计时器正在播放音乐,在音乐播放过程中来电,在t1时刻来电铃声抢占音乐的音频焦点,以播放来电铃声。再之后用户选择了接听电话,在t2时刻通话抢占计时器的音频焦点,以播放通话语音。
以及,不管音乐在前台播放还是后台播放,当来电结束后都应该自动恢复音乐持有音频焦点。参照图2,在t3时刻,通话介绍,音乐恢复持有音频焦点,音乐自动恢复播放。
针对上述介绍的两种应用场景,下面再对单核架构和多核架构的区别进行说明。
以图1为例,在单核架构中,当计时器正在持有音频焦点播放提示音的时候,来电铃声需要播放铃声音频,因为来电铃声的业务优先级高于计时器的业务优先级,因此来电铃声可以直接抢占音频焦点。以及因为是单核架构,在来电铃声抢占音频焦点之后,就可以直接通过音频硬件播放来电铃声。
然而在多核架构中,若仍然采用需要播放音频的业务直接抢占音频焦点的方案,则可能出现如下情况:当计时器正在持有音频焦点播放提示音的时候,来电铃声需要播放铃声音频,因为来电铃声的业务优先级高于计时器的业务优先级,因此来电铃声直接抢占音频焦点。计时器失去音频焦点之后,控制业务逻辑的芯片需要告知控制音频硬件的芯片,停止播放计时器业务的提示音,但是因为传输时延的存在,在音频硬件尚未停止播放提示音的时候,来电铃声已经获得音频焦点了。
而来电铃声在获得音频焦点之后,就可以渲染图1所示的来电界面了,那么就会导致可穿戴设备已经显示来电界面了,但是同时可穿戴设备还在播放计时器的提示音,从而会导致音频焦点的管理出现混乱,进而导致终端设备的界面和播放的音频无法匹配的问题。
针对上述介绍的技术问题,本申请提出了如下技术构思:通过在管理音频焦点的控制单元中维护一个持有者链表和抢占者链表,以对当前持有音频焦点的业务和等待获取音频焦点的业务进行维护,之后保证在上一个业务释放音频焦点之后,再允许向下一个业务持有音频焦点,从而可以保证多核架构中音频焦点的有序管理。
首先结合图4对多核架构的终端设备具体的软件架构进行说明,图4为本申请实施例提供的终端设备的软件架构示意图。
如图4所示,本申请中的终端设备中可以部署有第一芯片、第二芯片以及第三芯片,示例性的,第一芯片负责终端设备的主控以及SensorHub(传感器中枢),第二芯片负责终端设备的蓝牙以及音频,第三芯片负责终端设备的通信服务。
在本申请的技术方案中,第一芯片具体用于处理业务逻辑,第二芯片具体用于控制音频硬件。
参照图4,在第一芯片中进一步的可以部署有第三方应用以及系统应用,在系统应用中进一步可以包括UI层和业务层,UI层用于实现应用界面的处理,业务层用于实现应用的具体业务的处理。可以理解的是,实际上第三方应用也类似,也包含UI以及业务。
以及在第一芯片中还部署有音频服务(audio service),在音频服务中可以包括音频焦点的控制单元,该控制单元专门用于处理音频焦点相关的数据。
以及,在第二芯片中部署有驱动单元和音频硬件,驱动单元用于和第一芯片中的相关软件单元进行数据交互,从而控制音频硬件的音频播放。
在实际实现过程中,上述介绍的各个芯片的具体型号可以根据实际需求进行确定,以及终端设备中所实际包含的芯片的数量以及各个芯片所负责的服务,也可以根据实际需求进行选择和确定,只要负责业务的芯片和负责音频硬件的芯片为两个独立的芯片,就可以适用本申请的技术方案。
其中双核通信以实现音频控制的时候,通常是包括音频播放流程和音频停止播放的流程,下面对这两部分流程中各个模块之间的交互进行说明。
音频播放流程中,用户可以在应用程序的UI界面触发音频播放,然后UI层面的音频播放指令就传输给音频服务。音频服务单元可以向第二芯片中的驱动单元(也可以称为音频任务audio task)发送配置参数,配置参数可以包括如下中的至少一种:格式、通道数、位深、采样率。然后驱动单元就根据接收到的配置参数向音频硬件进行参数配置,那么音频硬件在播放音频数据的时候就是根据配置的参数播放的。
之后驱动单元就可以向音频服务请求业务的音频数据,或者驱动单元还可以直接向业务请求音频数据。然后音频服务就可以解析数据并将解析的音频数据发送给驱动单元。
示例性的,音频服务可以每两个数据包向驱动单元发送一个位图(bitmap),驱动单元据此验证是否发生丢包,若发生丢包则重新向音频服务请求音频数据,然后音频服务重新解析数据并发生。
音频服务接收到音频数据之后,再将音频数据发送给音频硬件进行播放,从而就实现了音频播放流程。
以及音频停止播放的流程中,用户可以在应用程序的UI界面触发音频停止播放,然后UI层面的停止播放指令就传输给音频服务。音频服务单元可以向第二芯片中的驱动单元发送停止播放指令,驱动单元再控制音频硬件停止播放。
以及驱动单元还可以向音频服务发送停止完成的反馈信息,然后再回调UI处理以实现相应的界面渲染。
在上述介绍内容的基础上,下面以第一业务是计时器业务以及第二业务是通话业务的应用场景为例,结合图5对抢占音频焦点时持有者链表和抢占者链表的使用方式进行说明,图5为本申请实施例提供的音频焦点控制方法的交互流程图。
如图5所示,该方法包括:
S501、通话业务向控制单元发送预释放请求。
例如当终端设备的来电挂断时,通话业务就可以确认音频播放完成,需要释放音频焦点,因此可以向控制单元发送音频焦点的预释放请求,或者还可以直接发送音频焦点释放请求,其含义是相同的。
S502、通话业务向驱动单元发送停止播放指令。
通话业务在确认要释放音频焦点之后,相应的,通话还需要通知第二芯片停止播放通话业务的音频数据,以保证音频硬件的有序使用。
因此,通话业务向驱动单元发送停止播放指令,停止播放指令就用于告知驱动单元需要停止播放通话业务的音频。
其中,通话业务可以直接向驱动单元发送停止播放指令,或者通话业务还可以向音频服务发送停止播放指令,然后由音频服务将停止播放指令发送给驱动单元。
S503、驱动单元响应于停止播放指令,控制音频硬件停止播放。
S504、驱动单元向通话业务发送反馈信息。
驱动单元在确认音频硬件已停止播放的情况下,可以向通话业务发送反馈信息,反馈信息用于指示音频硬件已停止播放。
S505、通话业务向控制单元发送告知信息。
通话业务在接收到驱动单元发送的反馈信息之后,可以确认音频硬件已经停止播放了,因此通话业务响应于反馈信息,可以向控制单元发送告知信息,告知信息用于告知控制单元通话业务已释放音频焦点。
S506、控制单元将通话业务从持有者链表删除。
控制单元在接收到告知信息之后,就可以确认通话业务已经释放音频焦点了,因此控制单元就可以将通话业务从持有者链表删除。
参照图5中(b)所示意的链表情况,在持有者链表中删除了通话业务。
S507、计时器业务向控制单元发送音频焦点获取请求。
假设在通话业务释放音频焦点的相关处理均完成之后,计时器业务中设置的计时才到时,此时计时器业务可以确认需要播放音频的时候,因此向控制单元发送音频焦点获取请求。
S508、控制单元将计时器业务添加至持有者链表。
控制单元在接收到计时器业务发起的音频焦点获取请求之后,因为当前抢占者链表为空,并且持有者链表中只有空闲业务,就代表当前音频焦点是空闲的,所以控制单元可以直接将计时器业务添加至持有者链表。
S509、控制单元向计时器业务发送音频焦点授予指令。
其中,S508和S509的执行顺序可以根据实际需求进行调整。
S510、计时器业务向驱动单元发送音频播放指令。
计时器业务在获得音频焦点之后,就可以向驱动单元发送音频播放指令,以指示驱动单元播放计时器业务的音频数据。
计时器业务可以直接向驱动单元发送音频播放指令,或者计时器业务还可以向音频服务发送音频播放指令,然后由音频服务将音频播放指令发送给驱动单元。
S511、驱动单元控制音频硬件播放计时器业务的音频数据。
之后,驱动单元就可以控制音频硬件播放计时器业务的音频数据。示例性的,驱动单元可以向第一芯片中的音频服务请求计时器业务的音频数据,之后音频服务将计时器业务的音频数据发送给驱动单元,驱动单元再控制音频硬件进行播放。
计时器业务在获得音频焦点之后,就可以渲染计时器业务的UI界面,从而保证在显示计时器业务的UI界面时,终端设备播放的是计时器业务的音频数据,从而避免了音频播放异常情况的发生。
本申请实施例提供的音频焦点控制方法中,通过持有者链表和抢占者链表进行音频焦点的管理,可以有效的保证音频焦点的有序管理。
上述介绍的情况是在通话业务完成释放音频焦点的处理,控制单元将通话业务从持有者链表删除之后,计时器业务才发起了音频焦点获取请求。然而还存在一种特殊的情况,是在通话业务要释放音频焦点,但是还没有完成音频焦点的释放处理时,计时器业务就发起了音频焦点获取请求,则可能导致一些异常情况,下面再结合图6对当前的这种异常情况进行说明,图6为本申请实施例提供的音频焦点控制方法的交互流程图二。
如图6所示,该方法包括:
S601、通话业务向控制单元发送预释放请求。
S602、通话业务向驱动单元发送停止播放指令。
其中,S601以及S602的实现方式与上述介绍的S501和S502的实现方式类似,此处不再赘述。
S603、计时器业务向控制单元发送音频焦点获取请求。
假设在通话业务刚向驱动单元发送了停止播放指令,驱动单元还没来得及进行具体的硬件处理,计时器业务中设置的计时就已经到时了,此时计时器业务可以确认需要播放音频的时候,因此向控制单元发送音频焦点获取请求。
S604、控制单元确认拒绝计时器业务获取音频焦点。
控制单元在接收到计时器业务发起的音频焦点获取请求之后,首先根据持有者链表中正在持有音频焦点的业务,确定是否允许计时器业务获取音频焦点。
在图6中未示意出控制单元的判断过程,参照图6中(a)所示意的链表情况,在抢占者链表中位于表头的业务为通话业务,通话业务的优先级是最高的,因此控制单元可以确定当前针对计时器业务的处理策略为拒绝计时器业务获取音频焦点。
S605、控制单元向计时器业务发送拒绝指令。
拒绝指令用于告知计时器业务当前不允许其获取音频焦点。
S606、驱动单元响应于停止播放指令,控制音频硬件停止播放。
在步骤606中,驱动单元才响应于上述S602中的停止播放指令,控制音频硬件停止播放通话业务的音频数据。
S607、驱动单元向通话业务发送反馈信息。
S608、通话业务向控制单元发送告知信息。
S609、控制单元将通话业务从持有者链表删除。
控制单元在接收到告知信息之后,就可以确认通话业务已经释放音频焦点了,因此控制单元就可以将通话业务从持有者链表删除。参照图6中(b)所示意的链表情况,在持有者链表中删除了通话业务。
针对当前图6介绍的这个异常情况,可以参照图7对界面进行理解,图7为本申请实施例提供的音频焦点处理的界面变化示意图。
如图7所示,例如终端设备设置了一个时间点t1的计时器/闹钟,然后终端设备进行通话操作,到时间点t1时进行通话挂断,UI界面(在第一芯片处理)已经切到计时器/闹钟界面,但通话业务还没有完成音频焦点释放操作,因为计时器的优先级比通话低,因此计时器申请音频焦点失败,那么就出现了计时器的UI界面已经显示了,但是计时器的提示音并没有播放的情况。
但是基于图7所示的过程可以确定的是,实际上通话业务已经要释放音频焦点了,只是因为在双核系统中,业务释放音频焦点需要一个处理过程,在该处理过程中若来了新的业务要获取音频焦点,正常情况下该新的业务应该是能够获得音频焦点的,因为当前业务已经不再需要音频焦点了,但是就是因为双核系统中时延的存在,导致了新的业务获取焦点失败。
以及还需要说明的是,上述介绍的场景是在驱动单元控制音频硬件停止播放之前,计时器业务就申请音频焦点了,但是实际上只要是在控制单元将通话业务从持有者链表删除之前,计时器业务发起音频焦点获取请求,实际上都会出现上述介绍的异常问题。
针对上述介绍的异常情况,本申请实施例提出了一种技术构思,可以针对要释放音频焦点的高优先级业务添加一个预释放标识,之后根据预释放标识,可以将想要抢占音频焦点的低优先级业务先添加至抢占者链表中,而不是直接拒绝低优先级业务的音频焦点获取请求。
下面结合图8首先进行说明,图8为本申请实施例提供的音频焦点管理方法的流程图。
如图8所示,该方法包括:
S801、若控制单元接收到第一业务发起的音频焦点获取请求,则根据持有者链表中正在持有音频焦点的第二业务,确定是否允许第一业务获取音频焦点。
基于上述介绍的软件架构可以确定的时候,在第一芯片中部署有音频焦点的控制单元,在本实施例中,控制单元中维护有持有者链表和抢占者链表。在持有者链表中记录有当前正在持有音频焦点的业务和/或后续需要恢复音频焦点的业务,在抢占者链表中记录有等待获取音频焦点的业务。
示例性的,在持有者链表和抢占者俩表中记录的是业务的标识,为了便于描述,下文中文字描述的内容是持有者链表中的业务和抢占者链表中的业务,但是需要理解,其具体含义是在持有者链表中记录的业务以及在抢占者链表中记录的业务。
假设第一业务需要播放音频,则第一业务可以向控制单元发起音频焦点获取请求,控制单元在接收到第一业务的音频焦点获取请求之后,可以首先确定持有者链表中当前时刻正在持有音频焦点的第二业务。
在一种可能的实现方式中,持有者链表中位于表头的业务就是当前时刻正在持有音频焦点的业务,因此可以将位于表头的业务确定为第二业务。
之后根据第二业务确定是否允许第一业务获取音频焦点。示例性的,若第一业务的优先级大于第二业务,则允许第一业务获取音频焦点,若第一业务的优先级小于第二业务,则不允许第一业务获取焦点。
或者,还可以参照上述介绍的实现方式,根据预设矩阵确定第一业务和第二业务之间对于音频焦点的处理策略,从而确定是否允许第一业务获取音频焦点。
在本实施例中,第一业务还可以理解为低优先级业务,第二业务还可以理解为高优先级业务。
S802、若不允许,则在持有者链表中的第二业务关联有预释放标识的情况下,将第一业务添加至抢占者链表。
若控制单元确定不允许第一业务获取音频焦点,则控制单元会进一步判断一下,持有者链表中的第二业务是否关联有预释放标识。
在本实施例中,在所述第二业务需要停止音频播放时,所述第二业务可以向所述控制单元发送音频焦点的预释放请求,所述控制单元根据所述预释放请求,为所述第二业务关联预释放标识。也就是说控制单元针对每一个要释放音频焦点的业务,都可以先添加一个预释放标识,该预释放标识用于指示业务已经要释放音频焦点了,只是说释放流程目前还没有处理完成。
因此,在第二业务关联有预释放标识的情况下,可以确认第二业务要释放音频焦点,正在处理音频焦点的释放请求,因此目前还处于持有者链表中。那么这种情况下,虽然根据优先级或者处理策略确定了要拒绝第一业务获取音频焦点,但是实际上第一业务是可以获得音频焦点的,因此可以将第一业务添加至抢占者链表。
S803、在第二业务告知已释放音频焦点后,将第二业务从持有者链表删除,并向第一业务发送音频焦点授予指令。
第二业务会持续的进行音频焦点释放的相关处理,在第二业务释放音频焦点的流程结束之后,就会告知控制单元其已释放音频焦点。在一种可能的实现方式中,第二业务在确认音频硬件已经停止播放第二业务的音频数据的情况下,才会确认音频焦点已释放,从而告知控制单元其已释放音频焦点。
在确认第二业务已释放音频焦点之后,控制单元就可以将第二业务从持有者链表删除,之后再向第一业务发送音频焦点授予指令,音频焦点授予指令用于告知第一业务被授予音频焦点。
第一业务在接收到音频焦点授予指令之后,就可以与第二芯片进行交互,从而使用音频硬件播放第一业务的音频数据。
S804、将第一业务添加至持有者链表,并将第一业务从抢占者链表删除。
控制单元向第一业务发送音频焦点授予指令,就表示使得第一业务获得音频焦点了,那么控制单元就需要记录第一业务获得了音频焦点,因此将第一业务添加至持有者链表,并且需要将第一业务从抢占者链表删除。
本申请实施例提供的音频焦点控制方法,包括:若控制单元接收到第一业务发起的音频焦点获取请求,则根据持有者链表中正在持有音频焦点的第二业务,确定是否允许第一业务获取音频焦点。若不允许,则在持有者链表中的第二业务关联有预释放标识的情况下,将第一业务添加至抢占者链表。在第二业务告知已释放音频焦点后,将第二业务从持有者链表删除,并向第一业务发送音频焦点授予指令。将第一业务添加至持有者链表,并将第一业务从抢占者链表删除。在第一业务需要获取音频焦点的时候,若确定不允许第一业务获取,则会进一步判断当前正在持有音频焦点的第二业务是否关联了预释放标识,若关联,则确认第一业务实际上是可以获取音频焦点的,因此先将第一业务记录在抢占者链表中,之后在确定当前持有音频焦点的第二业务已释放音频焦点的情况下,再向第一业务授予音频焦点,从而可以避免出现第二业务已经要释放音频焦点,但是因为还没有处理完音频焦点的释放流程,而导致第一业务申请音频焦点失败的异常情况,有效的提升了业务获取音频焦点的成功率,以及有效的保证音频焦点的有序管理。
基于上述介绍可以确定的是,控制单元在接收到第一业务的音频焦点获取请求的时候,要根据持有者链表中正在持有音频焦点的第二业务,确定是否允许第一业务获取音频焦点,示例性的,正在持有音频焦点的业务实际上就是位于持有者链表的表头的业务。
在一种实现方式中,可以在每个业务中分别维护该业务与其余业务的抢占权限关系,例如在业务1中维护与业务2、业务3、业务4的抢占权限关系,在业务2中维护与业务1、业务3、业务4的抢占权限关系等等。
那么每个业务在抢占音频焦点的时候,都需要判断当前正在占用音频焦点的是什么业务,然后再根据每个业务维护的抢占权限关系确定该业务是否具备抢占音频焦点的权限,在确定具备抢占权限时,再对被抢占业务进行音频焦点释放以及对应业务UI的更新操作。
然而这样的实现方式中,在软件架构中每新增一个新的业务,都需要针对新增业务维护与原来所有业务之间的逻辑判断,并且修改抢占权限也会涉及全部业务配合改动,也就是说针对原来系统中的所有业务,都需要进行代码的改动,以补充和新增业务之间的抢占权限关系,这样的实现方式会导致处理流程较为繁琐和复杂。
而在本申请的技术方案中,可以设置有预设矩阵,在预设矩阵中包括正在持有音频焦点的持有业务和请求持有音频焦点的请求业务之间对于音频焦点的处理策略,处理策略包括如下中的至少一种:拒绝请求业务获取音频焦点、允许请求业务获取音频焦点且持有业务释放音频焦点、允许请求业务和持有业务共享音频焦点;
可以参照图9对预设矩阵进行理解,图9为本申请实施例提供的预设矩阵示意图。
如图9所示,假设存在空闲业务以及业务1~业务4这5个业务,其中每一个业务都可能作为持有业务,也可能作为请求业务,因此在该预设矩阵中就包含了任意一个业务作为请求业务以及任意一个业务作为持有业务时,请求业务请求获取音频焦点时的处理策略。
在图9中,R(Reject)就表示拒绝请求业务获取音频焦点(即持有业务的音频焦点无法被抢占),E(Exclusive)就表示允许请求业务获取音频焦点且持有业务释放音频焦点(即持有业务的音频焦点可以被抢占),C(Concurrent)就表示允许请求业务和持有业务共享音频焦点,具体的,请求业务可以获得音频焦点,同时持有业务也保持音频焦点(即可以同时持有焦点,混音)。
结合图9的一个具体示例进行说明,例如当前业务2正持有音频焦点,以及业务3请求获取音频焦点,那么就是业务2作为持有业务,业务3作为请求业务,对应在图9中的处理策略为E,即允许请求业务获取音频焦点且持有业务释放音频焦点,也就是说业务2的音频焦点可以被业务3抢占。
再参照图9,例如当前业务3正持有音频焦点,以及业务4请求获取音频焦点,那么就是业务3作为持有业务,业务4作为请求业务,对应在图9中的处理策略为R,即拒绝请求业务获取音频焦点,也就是说业务3的音频焦点可以被业务4抢占。
那么在确定是否允许第一业务获取音频焦点的时候,就可以查找在所述预设矩阵中查找所述第一业务和所述第二业务之间对于音频焦点的目标处理策略,具体的,是第一业务作为请求业务,第二业务作为持有业务时,第一业务和第二业务之间对于音频焦点的目标处理策略,之后就可以根据目标处理策略,确定是否允许所述第一业务获取音频焦点。
需要说明的是,在本实施例中当目标处理策略为上述介绍的E时,可以确认允许第一业务获取音频焦点。当目标处理策略为上述介绍的C时,就需要借助混音容器进行混音处理。
因此在本实施例中,可以通过预设矩阵简单高效的确定是否允许相应的业务抢占音频焦点,而无需各个业务分别进行复杂的维护操作,以及在后续新增业务的时候,直接对预设矩阵进行更新即可,也无需针对各个业务都进行调整,因此可以有效的降低音频焦点的管理复杂性。
以及在一种实现方式中,为了保证在任意一个业务发起音频焦点获取请求的时候,总是能够有效的确认是否允许该业务获取音频焦点,可以设置在持有者链表的最底端始终记录有空闲业务,最底端可以理解为持有者链表的表尾,该空闲业务永不出链表,并且该空闲业务是优先级最低的业务。例如参照图6中(a)~(b)所示意的链表情况,在持有者链表中总是存在空闲业务。
参照图9中示意的预设矩阵,当空闲业务作为请求业务的时候,任意的一个业务作为持有业务的时候,空闲业务都无法获得音频焦点。反之,当空闲业务作为持有业务的时候,任意的一个业务作为请求业务,其都可以获得音频焦点。
也就是说,通过设置持有者链表中常驻空闲业务,可以保证在没有任何实际业务持有音频焦点的情况下,基于预设矩阵也能够确定出针对请求业务的处理策略,从而可以有效的保证方案的完备性。
以及还需要说明的是,本实施例中介绍的预设矩阵并不是唯一的实现方式,在实际实现过程中,并不限于矩阵这一种数据格式,实际上可以采用任意可能的数据格式记录上述介绍的任意两个业务之间的处理策略。
示例性的,当持有者链表中位于表头的业务为空闲业务的时候,也就是说持有者链表中只有空闲业务的时候,代表系统空闲,因此若控制单元接收到第一业务发送的音频焦点获取请求,可以直接将第一业务添加至持有者链表,以使得第一业务直接得到音频焦点。
也就是说当空闲业务作为持有者链表中唯一的业务时,因为空闲业务并不是一个实际在处理的业务,也不会有音频播放,空闲业务可以表明系统处于空闲的状态,因此第一业务可以直接得到音频焦点,无需进行上述介绍的各种交互操作,从而可以有效提升第一业务的音频播放效率。
在上述介绍内容的基础上,下面结合以各个软件单元之间交互的角度,结合图10对本申请提供的音频焦点控制方法进行进一步的详细介绍。图10为本申请实施例提供的音频焦点控制方法的交互流程图三。
如图10所示,该方法包括:
S1001、第二业务向控制单元发送音频焦点的预释放请求。
在第二业务需要停止音频播放的时候,可以向控制单元发送音频焦点的预释放请求,以请求释放音频焦点。
S1002、控制单元响应于预释放请求,为第二业务关联预释放标识。
参照图10中(b)所示意的链表情况,在持有者链表中为第二业务添加了预释放标识。
S1003、第二业务向驱动单元发送停止播放指令。
S1004、第一业务向控制单元发送音频焦点获取请求。
同样的,假设在第二业务的音频焦点释放过程未处理完成时,例如当前图10中示意的,第一业务刚向驱动单元发送了停止播放指令,驱动单元还没来得及进行具体的硬件处理,第一业务就需要播放音频,在这种情况下,第一业务可以向控制单元发送音频焦点获取请求。
S1005、驱动单元将第一业务添加至抢占者链表。
在本实施例中,驱动单元可以根据第二业务,确定是否第一业务获取音频焦点,若不允许的话,则在持有者链表中的第二业务关联有预释放标识的情况下,将第一业务添加至抢占者链表,其实现方式与上述介绍的类似,此处不再赘述。
参照图10中(c)所示意的链表情况,在抢占者链表中添加了第一业务。
S1006、驱动单元向第一业务发送等待指令。
其中等待指令用于告知第一业务,等待获取音频焦点,那么第一业务就可以确定,其是可以获得音频焦点的,只是需要等待一段时间。
S1007、驱动单元响应于停止播放指令,控制音频硬件停止播放。
S1008、驱动单元向第二业务发送反馈信息。
S1009、第二业务向控制单元发送告知信息。
第二业务在接收到驱动单元发送的反馈信息之后,可以确认音频硬件已经停止播放了,因此第二业务响应于反馈信息,可以向控制单元发送告知信息,告知信息用于告知控制单元第二业务已释放音频焦点。
S1010、控制单元将第二业务从持有者链表删除。
控制单元在接收到告知信息之后,就可以确认第二业务已经释放音频焦点了,因此控制单元就可以将第二业务从持有者链表删除。
参照图10中(d)所示意的链表情况,在持有者链表中删除了第二业务。
S1011、控制单元向第一业务发送音频焦点授予指令。
S1012、将第一业务添加至持有者链表,并将第一业务从抢占者链表删除。
示例性的,控制单元每次从持有者链表中删除业务之后,都可以判断在抢占者链表中是否存在业务,也就是说要确定是否存在等待抢占音频焦点的业务。若存在的话,则触发控制单元向第一业务发送音频焦点授予指令,并将第一业务添加至持有者链表,以及将第一业务从抢占者链表删除。参照图10中(e)所示意的链表情况,在持有者链表中添加了第一业务。
其中,S1011和S1012的执行顺序可以根据实际需求进行调整。
S1013、第一业务向驱动单元发送音频播放指令。
S1014、驱动单元控制音频硬件播放第一业务的音频数据。
本申请实施例提供的音频焦点控制方法中,在第二业务要释放音频焦点的时候,第二业务会指示驱动单元停止播放第二业务的音频,在第二业务接收到驱动单元发送的反馈信息,确定驱动单元已经停止播放之后,第二业务才会告知控制单元其已释放音频焦点,然后控制单元才会将第二业务从持有者链表删除,从而可以有效的保证第二业务已释放音频焦点的信息准确性和有效性。以及之后控制单元再授予第一业务音频焦点,并对持有者链表和抢占者链表进行相应的更新,从而可以有效的保证链表中记录的状态的正确性,以及音频焦点的有序管理。
可以参照图11对上述介绍的内容进行进一步的理解,图11为本申请实施例提供的业务优先级变化示意图。
实际上本申请实施例中是通过添加预释放标识,将高优先级业务的优先级降低了,以使得低优先级的业务可以获得音频焦点。
如图11所示,例如正常情况下第二业务的优先级是80,第一业务的优先级是40,因此第一业务是无法抢占音频焦点的。而在第二优先级被关联预释放标识的时候,第二业务的优先级例如被拉低为了10,因此第二业务就可以抢占音频焦点。在第二业务释放音频焦点完成之后,第二业务的优先级又恢复为80。
在一种可能的实现方式中,本实施例中可以针对可恢复播放的业务设置可恢复标识,无论是在持有者链表中还是抢占者链表中,可恢复播放的业务都可以关联有可恢复标识,以及在第二业务告知已释放音频焦点之后,控制单元确定第二业务是可恢复播放的业务,并且在抢占者链表中存在业务时,则表明当前的情况是存在业务要抢占第二业务的音频焦点,那么在抢占音频焦点的业务音频播放结束之后,应该要恢复第二业务的音频播放。所以控制单元会保持第二业务在持有者链表中,以使得抢占音频焦点的第一业务在主动释放音频焦点之后,第二业务可以直接恢复持有音频焦点,从而有效的实现了在双核系统中可恢复业务被高优先级的业务打断音频播放之后,高优先级的业务音频播放结束,可恢复业务可以自动恢复音频播放。
在上述介绍内容的基础上,还需要说明的是,可能存在多个业务都会等待抢占音频焦点,因此在向抢占者链表添加业务的时候,可以根据业务的优先级进行添加。
示例性的,在将第一业务添加至抢占者链表时,可以采用如下方式:
根据第一业务的优先级以及抢占者链表中已存储业务的优先级,将第一业务添加至抢占者链表;其中,抢占者链表中的各个业务按照优先级从大到小的顺序进行排序,此处的排序是指从表头到表尾的排序,也就是说优先级越高的越靠近表头,优先级越低的越靠近表尾。
而可以理解的是,链表的这种形式添加元素是非常灵活的,可以在任意的位置进行元素添加,至需要修改指针即可,因此本实施例中采用链表维护持有者和抢占者,可以有效的保证数据维护的灵活性。
在一种可能的实现方式中,在将第一业务添加至持有者链表,以及从抢占者链表删除第一业务的时候,都可以仅仅对第一业务进行操作。
或者,在将第一业务添加至持有者链表时,还可以将抢占者链表中的各个业务,保持在抢占者链表中的顺序整体添加至持有者链表的表头。
可以参照图12进行理解,图12为本申请实施例提供的链表变化示意图。
如图12所示,假设初始情况下在持有链表中包括计时器业务以及空闲业务,抢占者链表为空。
之后假设音乐业务要抢占音频焦点,并且控制单元确认允许之后,则控制单元将音乐业务添加至抢占者链表。
再之后,假设在计时器尚未完成音频焦点的释放处理时,来电铃声业务又要抢占音频焦点,控制单元校验之后确认允许,则控制单元再将来电铃声业务添加至抢占者链表,其中来电铃声业务的优先级高于音乐业务,因此来电铃声业务位于表头。
之后计时器业务释放音频焦点的相关处理完成之后,控制单元将计时器业务从持有者链表中删除,并且将抢占者链表中的来电铃声业务和音乐业务,保持来电铃声在上,音乐业务在下的顺序,将其整体添加至持有者链表的表头,从而得到图12中最终是以的持有者链表,其中从表头到表尾的顺序下,三个业务依次是:来电铃声业务、音乐业务、空闲业务。
可以理解的是,因为链表的写入操作比较灵活,因此通过简单的修改指针的方式,就可以实现将来电铃声和音乐这两个业务按照顺序写入持有者链表,那么相应的,后续就是优先级较高的来电铃声业务首先获得音频焦点,然后优先级次之的音乐业务再获得音频焦点。
以及在将第一业务从抢占者链表删除时,可以直接删除抢占者链表中各个业务。可选的,在上述介绍的持有者链表修改指针实现元素写入之后,实际上抢占者链表中的元素指针就被改变了,从而相应的实现了抢占者链表中的业务删除。
以及本实施例中直接将抢占者链表中的多个业务一次性写入持有者链表,还存在一个优点就是可以通过一次操作,直接将正在等待音频焦点的各个业务都写入持有者链表,避免了后续还要再重复进行链表的写入和删除的操作,从而可以有效节省系统资源。以及将正在等待音频焦点的各个业务写入持有者链表之后,若前一个业务完成音频播放释放音频焦点,则后一个业务就可以自动的获得音频焦点,从而有效的缩短了后一个业务获得音频焦点的时长。
上面已对本申请实施例的音频焦点控制方法进行了说明,下面对本申请实施例提供的执行上述音频焦点控制方法的装置进行描述。本领域技术人员可以理解,方法和装置可以相互结合和引用,本申请实施例提供的相关装置可以执行上述链表排序的方法中的步骤。
图13为本申请实施例提供的音频焦点控制装置的结构示意图。如图13所示,该装置130包括:处理模块1301、发送模块1302;
处理模块1301,用于若控制单元接收到第一业务发起的音频焦点获取请求,则根据持有者链表中正在持有音频焦点的第二业务,确定是否允许所述第一业务获取音频焦点;
所述处理模块1301,还用于若不允许,则在所述持有者链表中的第二业务关联有预释放标识的情况下,将所述第一业务添加至抢占者链表;
所述处理模块1301,还用于在所述第二业务告知已释放所述音频焦点后,将所述第二业务从所述持有者链表删除;
发送模块1302,用于向所述第一业务发送音频焦点授予指令;
所述处理模块1301,还用于将所述第一业务添加至所述持有者链表,并将所述第一业务从所述抢占者链表删除。
在一些实现方式中,所述处理模块1301,还用于
在所述第二业务停止音频播放时,所述第二业务向所述控制单元发送音频焦点的预释放请求;
所述控制单元根据所述预释放请求,为所述第二业务关联预释放标识。
在一些实现方式中,终端设备还包括用于控制音频硬件的第二芯片,所述第二芯片中包括音频硬件的驱动单元;
所述发送模块1302,还用于:
在所述第二业务向所述控制单元发送音频焦点的预释放请求之后,所述第二业务向所述驱动单元发送停止播放指令;
所述处理模块1301,还用于:所述驱动单元响应于所述停止播放指令,控制所述音频硬件停止播放。
在一些实现方式中,所述发送模块1302,还用于:
在所述驱动单元响应于所述停止播放指令,控制所述音频硬件停止播放之后,所述驱动单元向所述第二业务发送反馈信息,所述反馈信息用于指示所述音频硬件已停止播放。
在一些实现方式中,所述处理模块1301具体用于:
所述第二业务响应于所述反馈信息,向所述控制单元发送告知信息,所述告知信息用于告知所述第二业务已释放音频焦点;
所述处理模块1301,还用于:所述控制单元响应于所述告知信息,将所述第二业务从所述持有者链表删除。
在一些实现方式中,所述发送模块1302,还用于:
在所述向所述第一业务发送音频焦点授予指令之后,所述第一业务向所述驱动单元发送音频播放指令;
所述处理模块1301,还用于:所述驱动单元根据所述音频播放指令请求第一业务的音频数据,并控制所述音频硬件播放所述第一业务的音频数据。
在一些实现方式中,所述处理模块1301,还用于:
根据所述第一业务的优先级以及所述抢占者链表中已存储业务的优先级,将所述第一业务添加至所述抢占者链表;
其中,所述抢占者链表中的各个业务按照优先级从大到小的顺序进行排序。
在一些实现方式中,所述持有者链表的最底端记录有空闲业务;
所述处理模块1301具体用于:
将所述抢占者链表中的各个业务,保持在所述抢占者链表中的顺序整体添加至持有者链表的表头;
删除所述抢占者链表中的各个业务。
在一些实现方式中,所述处理模块1301具体用于:
获取预设矩阵,所述预设矩阵中包括正在持有音频焦点的持有业务和请求持有音频焦点的请求业务之间对于音频焦点的处理策略,所述处理策略包括如下中的至少一种:拒绝所述请求业务获取音频焦点、允许所述请求业务获取音频焦点且所述持有业务释放音频焦点、允许所述请求业务和所述持有业务共享音频焦点;
在所述预设矩阵中查找所述第一业务和所述第二业务之间对于音频焦点的目标处理策略,根据所述目标处理策略,确定是否允许所述第一业务获取音频焦点。
本申请实施例提供的音频焦点控制方法,可以应用在具备通信功能的电子设备中。电子设备包括终端设备,终端设备的具体设备形态等可以参照上述相关说明,此处不再赘述。
本申请实施例提供一种终端设备,图14为本申请实施例提供的终端设备的硬件结构示意图。
如图14所示,该终端设备140包括:包括:处理器1401和存储器1402;存储器1402存储计算机执行指令;处理器1401执行存储器1402存储的计算机执行指令,使得终端设备140执行上述方法。
当存储器1402独立设置时,该终端设备还包括总线1403,用于连接所述存储器1402和处理器1401。
本申请实施例提供一种芯片。芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质。计算机可读存储介质存储有计算机程序。计算机程序被处理器执行时实现上述方法。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或者在计算机可读介质上传输。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
一种可能的实现方式中,计算机可读介质可以包括RAM,ROM,只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储器,磁盘存储器或其它磁存储设备,或目标于承载的任何其它介质或以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(Digital Subscriber Line,DSL)或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘,激光盘,光盘,数字通用光盘(Digital Versatile Disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行上述方法。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (13)
1.一种音频焦点控制方法,其特征在于,应用于终端设备,所述终端设备包括用于处理业务逻辑的第一芯片,所述第一芯片中音频焦点的控制单元维护持有者链表和抢占者链表;
所述方法包括:
若控制单元接收到第一业务发起的音频焦点获取请求,则根据持有者链表中正在持有音频焦点的第二业务,确定是否允许所述第一业务获取音频焦点;
若不允许,则在所述持有者链表中的第二业务关联有预释放标识的情况下,将所述第一业务添加至抢占者链表;
在所述第二业务告知已释放所述音频焦点后,将所述第二业务从所述持有者链表删除,并向所述第一业务发送音频焦点授予指令;
将所述第一业务添加至所述持有者链表,并将所述第一业务从所述抢占者链表删除。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第二业务停止音频播放时,所述第二业务向所述控制单元发送音频焦点的预释放请求;
所述控制单元根据所述预释放请求,为所述第二业务关联预释放标识。
3.根据权利要求2所述的方法,其特征在于,终端设备还包括用于控制音频硬件的第二芯片,所述第二芯片中包括音频硬件的驱动单元;
所述第二业务向所述控制单元发送音频焦点的预释放请求之后,所述方法还包括:
所述第二业务向所述驱动单元发送停止播放指令;
所述驱动单元响应于所述停止播放指令,控制所述音频硬件停止播放。
4.根据权利要求3所述的方法,其特征在于,所述驱动单元响应于所述停止播放指令,控制所述音频硬件停止播放之后,所述方法还包括:
所述驱动单元向所述第二业务发送反馈信息,所述反馈信息用于指示所述音频硬件已停止播放。
5.根据权利要求4所述的方法,其特征在于,所述在所述第二业务告知已释放所述音频焦点后,将所述第二业务从所述持有者链表删除,包括:
所述第二业务响应于所述反馈信息,向所述控制单元发送告知信息,所述告知信息用于告知所述第二业务已释放音频焦点;
所述控制单元响应于所述告知信息,将所述第二业务从所述持有者链表删除。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述向所述第一业务发送音频焦点授予指令之后,所述方法还包括:
所述第一业务向所述驱动单元发送音频播放指令;
所述驱动单元根据所述音频播放指令请求第一业务的音频数据,并控制所述音频硬件播放所述第一业务的音频数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,将所述第一业务添加至抢占者链表,包括:
根据所述第一业务的优先级以及所述抢占者链表中已存储业务的优先级,将所述第一业务添加至所述抢占者链表;
其中,所述抢占者链表中的各个业务按照优先级从大到小的顺序进行排序。
8.根据权利要求7所述的方法,其特征在于,所述持有者链表的最底端记录有空闲业务;
所述将所述第一业务添加至所述持有者链表,并将所述第一业务从所述抢占者链表删除,包括:
将所述抢占者链表中的各个业务,保持在所述抢占者链表中的顺序整体添加至持有者链表的表头;
删除所述抢占者链表中的各个业务。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述根据持有者链表中正在持有音频焦点的第二业务,确定是否允许所述第一业务获取音频焦点,包括:
获取预设矩阵,所述预设矩阵中包括正在持有音频焦点的持有业务和请求持有音频焦点的请求业务之间对于音频焦点的处理策略,所述处理策略包括如下中的至少一种:拒绝所述请求业务获取音频焦点、允许所述请求业务获取音频焦点且所述持有业务释放音频焦点、允许所述请求业务和所述持有业务共享音频焦点;
在所述预设矩阵中查找所述第一业务和所述第二业务之间对于音频焦点的目标处理策略,根据所述目标处理策略,确定是否允许所述第一业务获取音频焦点。
10.一种音频焦点控制装置,其特征在于,包括:
处理模块,用于若控制单元接收到第一业务发起的音频焦点获取请求,则根据持有者链表中正在持有音频焦点的第二业务,确定是否允许所述第一业务获取音频焦点;
所述处理模块,还用于若不允许,则在所述持有者链表中的第二业务关联有预释放标识的情况下,将所述第一业务添加至抢占者链表;
所述处理模块,还用于在所述第二业务告知已释放所述音频焦点后,将所述第二业务从所述持有者链表删除;
发送模块,用于向所述第一业务发送音频焦点授予指令;
所述处理模块,还用于将所述第一业务添加至所述持有者链表,并将所述第一业务从所述抢占者链表删除。
11.一种终端设备,其特征在于,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述终端设备执行如权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9任一项所述的方法。
13.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得计算机执行如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310809860.9A CN116991357A (zh) | 2023-06-30 | 2023-06-30 | 音频焦点控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310809860.9A CN116991357A (zh) | 2023-06-30 | 2023-06-30 | 音频焦点控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116991357A true CN116991357A (zh) | 2023-11-03 |
Family
ID=88525632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310809860.9A Pending CN116991357A (zh) | 2023-06-30 | 2023-06-30 | 音频焦点控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991357A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111381798A (zh) * | 2018-12-28 | 2020-07-07 | 广州市百果园信息技术有限公司 | 音频处理方法、装置、终端和存储介质 |
CN112235063A (zh) * | 2020-09-29 | 2021-01-15 | 中国第一汽车股份有限公司 | 一种车载音频播放控制方法、装置、设备及存储介质 |
CN114995779A (zh) * | 2022-06-14 | 2022-09-02 | 富赛汽车电子有限公司 | 一种车载音频焦点的仲裁方法、仲裁装置及电子设备 |
-
2023
- 2023-06-30 CN CN202310809860.9A patent/CN116991357A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111381798A (zh) * | 2018-12-28 | 2020-07-07 | 广州市百果园信息技术有限公司 | 音频处理方法、装置、终端和存储介质 |
CN112235063A (zh) * | 2020-09-29 | 2021-01-15 | 中国第一汽车股份有限公司 | 一种车载音频播放控制方法、装置、设备及存储介质 |
CN114995779A (zh) * | 2022-06-14 | 2022-09-02 | 富赛汽车电子有限公司 | 一种车载音频焦点的仲裁方法、仲裁装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20230098845A (ko) | 통신 방법 및 장치, 컴퓨터로 판독 가능한 매체 및 전자 디바이스 | |
KR20190088063A (ko) | 리소스 공유 방법, 장치 및 시스템 | |
JP5077344B2 (ja) | 通信システム、サーバ装置、通信端末装置及びコンピュータプログラム | |
US20080320481A1 (en) | Method and Apparatus for Playing Dynamic Content | |
EP3751903B1 (en) | Method and apparatus for business migration | |
US11991227B2 (en) | Method and device for controlling video reception | |
CN109246813A (zh) | 一种网络切片互斥关系处理方法、设备及系统 | |
TWI520546B (zh) | 在一半雙工即按即通系統中之同步化發言權控制及媒體共用 | |
CN110764724A (zh) | 一种显示设备控制方法、装置、设备及存储介质 | |
CA2839374C (en) | Call processing method, device and system | |
US20110201375A1 (en) | System and method for selective media object removal in group communications among wireless communication devices | |
CN116991357A (zh) | 音频焦点控制方法及装置 | |
CN117032620A (zh) | 音频焦点控制方法及装置 | |
CN116974508A (zh) | 音频焦点控制方法及装置 | |
JP2006254339A (ja) | 映像記録装置、映像記録システム、及び、映像記録方法 | |
CN111158629A (zh) | 无缝切换媒资播放器的方法和系统 | |
CN110049360B (zh) | 跨平台内容控制方法、装置、终端、服务器及存储介质 | |
US11523157B2 (en) | Method and mission critical server for handling reception of media streams in mission critical system | |
CN112965685B (zh) | 音频控制方法、装置、系统、终端设备及存储介质 | |
CN109413284B (zh) | 一种通话切换的方法和设备 | |
WO2014203728A1 (ja) | メッセージ制御システム、メッセージ制御装置、メッセージ制御方法及びプログラム | |
US11317470B2 (en) | Network system, network device applied thereto and operation method for network device, and operation method for network node | |
KR20090108251A (ko) | 이동통신 시스템에서의 메시지 서비스 제공 방법 및시스템, 그리고 메시지 수신 방법 및 이를 수행하는이동통신 단말 | |
JPH10327173A (ja) | バス資源の予約装置及び管理装置、バス資源予約システム、ならびにバス資源予約方法 | |
KR100772411B1 (ko) | 서비스 이용 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |