音频播放方法、装置、设备及存储介质与流程

文档序号:15837045发布日期:2018-11-07 07:59阅读:153来源:国知局
音频播放方法、装置、设备及存储介质与流程

本申请实施例涉及音箱技术领域,尤其涉及一种音频播放方法、装置、设备及存储介质。

背景技术

在智能音箱上,能够播放的音频一般包括:由文本转换得到的语音音频,即tss音频,数字声音格式(audio)音频,提醒(alert)闹钟音频等。如果这些音频文件同时在音箱上播放,就会出现混音的问题,不符合用户的预期。

现有的解决方法是为上述三种音频设定优先级,当有新的音频要播放时,将新的音频的优先级与当前播放的音频的优先级作比较,播放优先级较高的音频,这种解决方法虽然解决了音箱混音的问题,但是当新加入的音频优先级较低时,则无法立即播放,尤其是在现有技术中audio音频的优先级较低,按照现有的技术方案若当前有alert闹钟音频或tts音频播放时,新加入的audio音频则无法立即播放。



技术实现要素:

本申请实施例提供一种音频播放方法、装置、设备及存储介质,用以保证新加入的播放请求能够立即得到播放。

本申请实施例第一方面提供一种音频播放方法,包括:接收第一音频焦点频道的播放请求;基于所述播放请求,控制当前正在播放音频的第二音频焦点频道停止播放,并将原分配给所述第二音频焦点频道的音频焦点,重新分配给所述第一音频焦点频道,以使所述第一音频焦点频道基于所述音频焦点播放音频。

本申请实施例第二方面提供一种音频播放装置,包括:接收模块,用于接收第一音频焦点频道的播放请求;第一分配模块,用于基于所述播放请求,控制当前正在播放音频的第二音频焦点频道停止播放,并将原分配给所述第二音频焦点频道的音频焦点,重新分配给所述第一音频焦点频道,以使所述第一音频焦点频道基于所述音频焦点播放音频。

本申请实施例第三方面提供一种音频播放设备,包括:一个或多个处理器;一个或多个显示屏,用于显示当前正在播放的音频的名称,以及下一首即将播放的音频的名称;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面所述的方法。

本申请实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的方法。

基于以上各方面,本申请实施例通过接收第一音频焦点频道的播放请求,基于该播放请求控制当前正在播放音频的第二音频焦点频道停止播放,并将原分配给第二音频焦点频道的音频焦点,重新分配给第一音频焦点频道,使得第一音频焦点频道能够基于音频焦点播放音频。从而本申请实施例能够保证新加入的播放请求能够立即得到播放,并且不区分请求播放的音频类型,尤其是能够保证新加入的audio音频能够立即得到播放,提高了用户体验。

应当理解,上述发明内容部分中所描述的内容并非旨在限定本申请的实施例的关键或重要特征,亦非用于限制本申请的范围。本公申请的其它特征将通过以下的描述变得容易理解。

附图说明

图1是本申请实施例提供的一种音频播放方法的流程图;

图2是本申请实施例提供的一种释放分配给第二音频焦点频道的音频焦点的方法流程图;

图3是本申请实施例提供的一种音频焦点频道的入栈、出栈方法示意图;

图4是本申请实施例提供的一种音频播放装置的结构示意图;

图5是本申请实施例提供的一种音频播放装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。

本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为了便于理解,下面首先对本申请实施例涉及的专业名词进行解释:

1、音频焦点(audiofocus),是一种音频播放的必要工具/条件,整个音频播放方案中只有一个音频焦点。

2、音频焦点频道(audiofocuschannel),用于播放音频。当有新的音频需要播放时,需要通过音频焦点频道向音频焦点管理器(audiofocusmanager)发送播放请求,音频焦点管理器根据预设策略决定是否将音频焦点分配给音频焦点频道,若音频焦点管理器将音频焦点分配给音频焦点频道,则该音频焦点频道进入预设的数据栈,并基于音频焦点在该数据栈的栈顶播放音频,其中,音频焦点频道能够播放什么类型的音频需要预先在音频焦点管理器(audiofocusmanager)中注册,本申请实施例涉及的音频类型包括但不局限于tts音频、audio音频和alert闹钟音频。

3、音频焦点管理器(audiofocusmanager),包括上述设涉及的音频焦点和数据栈。

现有技术中为了解决一个音频播放系统同时播放多个音频所导致的混音问题,通常采用优先级的方法播放多个音频中优先级最高的音频。当前这种播放方案一般设定tts音频的优先级大于alert闹钟音频的优先级,alert闹钟音频的优先级大于audio音频的优先级。基于这种优先级的设定,现有技术具体音频播放方案如下:

当有新的音频焦点频道a向音频焦点管理器发送播放请求时,音频焦点管理器判断数据栈中是否有音频焦点频道b正在播放音频,若没有,则将音频焦点分配给音频焦点频道a,音频焦点频道a进入数据栈的栈顶播放音频。若数据栈的栈顶有音频焦点频道b正在播放音频,则将音频焦点频道b播放的音频的优先级与音频焦点频道a所要播放的音频的优先级进行比较,若前者的优先级高于后者的优先级,则音频焦点管理器拒绝音频焦点频道a的播放请求;若前者优先级低于后者优先级,则将音频焦点分配给音频焦点频道a,此时音频焦点频道b失去音频焦点,并且可以通过调用预设的函数确定音频焦点频道b其播放的音频是否属于预先设定的支持恢复播放的音频类型,若属于,则控制音频焦点频道b停止播放,并将音频焦点频道b沉入数据栈,使得音频焦点频道a位于栈顶,当音频焦点频道a结束音频播放后,音频焦点频道a出栈,音频焦点频道b到栈顶恢复播放;而若是音频焦点频道b其播放的音频不属于可恢复播放的音频,则在控制音频焦点频道b停止播放后,控制音频焦点频道b出栈,此时音频焦点频道b不能恢复播放。

由上述技术方案可知,由于现有技术依赖于预先设定的优先级信息,当有新的音频焦点频道发送播放请求时,若新的音频焦点频道其要播放的音频的优先级低于当前正在播放的音频的优先级,那么新的音频焦点频道就不能播放音频,这严重降低了用户的使用体验。尤其是在现有技术audio音频的优先级狠低,当有新加入的audio音频请求播放时,很容出现播放失败的情况。

针对现有技术存在的上述问题,本申请实施例提供一种音频播放方法,该方法没有像现有技术那样为音频类型设定优先级,而是采用立即播放的形式,一接收到播放请求,就立即暂停或终止当前正在执行的播放操作,并为该播放请求分配音频焦点,。因而能够避免现有技术中因请求播放的音频类型的优先级低于当前正在播放的音频类型的优先级,而导致的低优先级音频类型无法即时播放的问题,有效的提高了用户体验。

以下将结合附图来具体描述本申请实施例的技术方案。

图1是本申请实施例提供的一种音频播放方法的流程图,该方法可以由一种音频播放装置来执行。参见图1,该方法包括步骤s11-s12:

s11、接收第一音频焦点频道的播放请求。

s12、基于所述播放请求,控制当前正在播放音频的第二音频焦点频道停止播放,并将原分配给所述第二音频焦点频道的音频焦点,重新分配给所述第一音频焦点频道,以使所述第一音频焦点频道基于所述音频焦点播放音频。

其中,本实施例对于“第一音频焦点频道”和“第二音频焦点频道”的命名仅是为了区分正在播放音频的音频焦点频道和发送播放请求的音频焦点频道,而不具有其他含义。

本实施例设定的技术场景是当第二音频焦点频道正在播放音频时,接收到来自第一音频焦点频道的播放请求,此时第二音频焦点频道位于预设数据栈的栈顶,且拥有音频焦点,而第一音频焦点频道位于数据栈外,不拥有音频焦点(整个音频播放方案中只有唯一的一个音频焦点)。本实施例是在现有技术基本架构的基础上进行的改进,主要是去除现有技术对音频优先级的划分,并通过技术手段解决上述场景中如何使得第一音频焦点频道立即得到播放权限,并立即执行播放操作的问题,以及在此基础之上第二音频焦点频道如何处理的问题。

为了能够清楚说明本实施例的技术方案,下面以一个具体的示例来进行说明:

假设在该示例中,第一音频焦点频道请求播放的音频为audio音频,第二音频焦点频道正在播放的是alert闹钟音频。此时为了audio音频能够立即得到播放,需要先控制第二音频焦点频道停止播放alert闹钟音频,再释放第二音频焦点频道所拥有的音频焦点,使得第二音频焦点频道失去音频焦点。然而此时本实施例对于失去音频焦点的第二音频焦点频道的处理方式可能有多种,比如,在一种可能的设计中可以对第二音频焦点频道执行出栈操作,将从数据栈中释放出来的第二音频焦点频道所播放的alert闹钟音频丢弃掉,并在第二音频焦点频道出栈后,将第一音频焦点频道置入数据栈的栈顶,将音频焦点分配给第一音频焦点频道,使得第一音频焦点频道播放audio音频。在另一种可能的设计中可以将失去音频焦点的第二音频焦点频道沉入数据栈中,将第一音频焦点频道置入数据栈的栈顶,并将音频焦点分配给第一音频焦点频道,使得第一音频焦点频道播放audio音频,当audio音频结束播放后,对第一音频焦点频道执行出栈操作和释放音频焦点的操作,并在第一音频焦点频道出栈后,将数据栈中的第二音频焦点频道置顶,并将音频焦点重新分配给第二音频焦点频道,以使第二音频焦点频道恢复对alert闹钟音频的播放。但是这里需要说明的是,若出现第一音频焦点频道出栈,第二音频焦点频道尚未恢复播放,且又接收到新的播放请求,则可以优先将音频焦点分配给新接收到的播放请求,进一步确保新的播放请求能够立即得到播放。

有上述示例可以看出,无论采用上述提供的哪种第二音频焦点频道的处理方法,本实施例都能够立即响应新接收到的播放请求,并保证新的播放请求能够立即得到播放。当然上述仅是为了清除所做的举例说明,而不是对本申请实施例的唯一限定。实际上,实际场景中第一音频焦点频道和第二音频焦点频道所播放的音频,可以是任意类型的音频,且第一音频焦点频道和第二音频焦点频道所播放的音频类型可以相同也可以不同。

进一步地,为了提供友好的用户交互,本实施例再将音频焦点分配给第一音频焦点频道之后,还可以对第一音频焦点频道播放的音频的名称进行显示,例如在上例中第一音频焦点频道播放的是audio音频,该音频的名称可以通过音频播放装置搭载或外接的显示屏进行显示。甚至在上述示例的第二种情况中,若第二音频焦点频道在失去音频焦点后没有执行出栈操作,而是沉入了数据栈,那么本实施例还可以将第二音频焦点频道播放的音频的名称显示为下一首即将播放的音频的名称。

本实施例通过接收第一音频焦点频道的播放请求,基于该播放请求控制当前正在播放音频的第二音频焦点频道停止播放,并将原分配给第二音频焦点频道的音频焦点,重新分配给第一音频焦点频道,使得第一音频焦点频道能够基于音频焦点播放音频。从而本实施例能够保证新加入的播放请求能够立即得到播放,并且不区分请求播放的音频类型,尤其是能够保证新加入的audio音频能够立即得到播放,提高了用户体验。

下面结合附图对上述实施例进行进一步的优化和扩展。

图2是本申请实施例提供的一种释放分配给第二音频焦点频道的音频焦点的方法流程图,如图2所示,在图1实施例的基础上,该方法包括步骤s21-s23:

s21、判断所述第二音频焦点频道当前播放的音频类型是否属于预先设定的目标音频类型,其中若是,则执行步骤s22,否则执行步骤s23。

s22、释放原分配给所述第二音频焦点频道的音频焦点,并将所述第二音频焦点频道沉入所述数据栈中。

s23、释放原分配给所述第二音频焦点频道的音频焦点,并对所述第二音频焦点频道执行出栈操作。

其中,本实施例所称的目标音频类型是指预先设定的可恢复播放的音频类型,目标音频类型包括一个或多个音频类型,目标音频类型可以根据需要进行设定,本实施例不对其进行具体限定。

另外,本实施例设定所有获得音频焦点的音频焦点频道均在数据栈的栈顶执行播放操作。也就是说,音频播放装置在接收到第一音频焦点频道的播放请求时,第二音频焦点频道正处于数据栈的栈顶。

为了方面理解,下面以一个可能的示例对本实施例的音频播放方法进行详细的说明:

具体的,图3是本申请实施例提供的一种音频焦点频道的入栈、出栈方法示意图。在图3所示的场景中数据栈在初始状态下是空栈,即数据栈中没有任何数据,此时没有音频在播放。进一步的,假设此时有一个tts音频要播放,则用于播放该tts音频的音频焦点频道a1向音频播放装置发送播放请求,此时由于没有任何音频在播放,音频播放装置直接控制音频焦点频道a1进入数据栈,并将音频焦点分配给音频焦点频道a1,使得音频焦点频道a1在栈顶播放tts音频,若直到tts音频播放结束,仍旧没有新的播放请求,则在tts音频播放结束对音频焦点频道a1执行出栈操作。在此之后,假设又有一个audio音频要播放,则用于播放该audio音频的音频焦点频道b1向音频播放装置发送播放请求,音频播放装置控制音频焦点频道b1入栈,并将音频焦点分配给音频焦点频道b1,使得音频焦点频道b1播放audio音频,若在audio音频还未播放结束时就收到来自音频焦点频道c1的播放alert闹钟音频的请求时,由于audio音频是预先设定的可恢复播放的音频类型,因此,音频播放装置在释放原分配给音频焦点频道b1的音频焦点后,将音频焦点频道b1沉入数据栈,此时音频焦点频道c1进入数据栈的栈顶,并基于音频播放装置分配给其的音频焦点播放alert闹钟音频。当alert闹钟音频结束后,音频焦点频道c1出栈,音频焦点被重新分配给音频焦点频道b1,此时音频焦点频道b1重新置于栈顶,并在栈顶恢复对audio音频的播放,当audio音频也播放完毕后,音频焦点频道b1出栈。也就是说,上述示例可概括性的表述为当第一音频焦点频道结束音频播放后,释放分配给第一音频焦点频道的音频焦点,并对第一音频焦点频道执行出栈操作。另外,若此时第二音频焦点频道仍旧在数据栈中,则将第二音频焦点频道置于数据栈的栈顶,并将音频焦点重新分配给第二音频焦点频道,以使第二音频焦点频道重新恢复播放。

本实施例通过对第二音频焦点频道正在播放的音频类型进行判断,若正在播放的音频类型属于预设的可恢复播放的目标音频类型,则将暂停播放的第二音频焦点频道沉入数据栈,从而在第一音频焦点频道结束播放之后,第二音频焦点频道能够基于重新得到的音频焦点恢复播放,在保证新的播放请求能够立即得到播放的同时,也能够保证未播放完毕的音频不会轻易丢失,并且可以在新加入的播放请求播放完毕后,重新恢复播放,提高了用户体验。

图4是本申请实施例提供的一种音频播放装置的结构示意图,如图4所示,该装置包括:

接收模块11,用于接收第一音频焦点频道的播放请求;

第一分配模块12,用于基于所述播放请求,控制当前正在播放音频的第二音频焦点频道停止播放,并将原分配给所述第二音频焦点频道的音频焦点,重新分配给所述第一音频焦点频道,以使所述第一音频焦点频道基于所述音频焦点播放音频。

在一种可能的设计中,所述第一分配模块12,包括:

释放子模块121,用于释放原分配给所述第二音频焦点频道的音频焦点;

分配子模块122,用于将所述音频焦点重新分配给所述第一音频焦点频道,并将所述第一音频焦点频道置于预设的数据栈的栈顶,以使所述第一音频焦点频道基于所述音频焦点播放音频。

在一种可能的设计中,所述装置还包括:

第一显示模块,用于显示所述第一音频焦点频道播放的音频名称。

在一种可能的设计中,所述装置还包括:

第二显示模块,用于将所述第二音频焦点频道播放的音频的名称显示为下一首将要播放的音频的名称。

本实施例提供的音频播放装置能够用于执行图1实施例的方法,其执行方式和有益效果类似在这里不再赘述。

图5是本申请实施例提供的一种音频播放装置的结构示意图,如图5所示,在图4实施例的基础上,所述释放子模块121,包括:

判断子单元1211,用于判断所述第二音频焦点频道当前播放的音频类型是否属于预先设定的目标音频类型;

第一释放子单元1212,用于在所述第二音频焦点频道当前播放的音频类型属于所述目标音频类型时,释放原分配给所述第二音频焦点频道的音频焦点,并将所述第二音频焦点频道沉入所述数据栈中;

第二释放子单元1213,用于在所述第二音频焦点频道当前播放的音频类型不属于所述目标音频类型时,释放原分配给所述第二音频焦点频道的音频焦点,并对所述第二音频焦点频道执行出栈操作;

其中,当接收到所述第一音频焦点频道的播放请求时,所述第二音频焦点频道处于预设数据栈的栈顶。

在一种可能的设计中,所述装置还包括:

释放模块,用于在所述第一音频焦点频道结束音频播放后,释放分配给所述第一音频焦点频道的音频焦点;

执行模块,用于对所述第一音频焦点频道执行出栈操作。

在一种可能的设计中,所述装置还包括:

第二分配模块,用于在所述第二音频焦点频道仍旧在所述数据栈中时,将所述第二音频焦点频道置于所述数据栈的栈顶,并将所述音频焦点重新分配给所述第二音频焦点频道,以使所述第二音频焦点频道重新恢复播放。

在一种可能的设计中,所述装置还包括:

第三分配模块,用于当前没有正在播放的音频焦点频道时,将音频焦点直接分配给所述第一音频焦点频道,以使所述第一音频焦点频道基于所述音频焦点播放音频。

本实施例提供的音频播放装置能够用于执行图2实施例的方法,其执行方式和有益效果类似在这里不再赘述。

本申请实施例还提供一种音频播放设备,包括:一个或多个处理器;

一个或多个显示屏,用于显示当前正在播放的音频的名称,以及下一首即将播放的音频的名称;

存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。

本申请实施例还提供在一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述的方法。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等等。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1