CN110806925B - 音频播放方法及设备 - Google Patents
音频播放方法及设备 Download PDFInfo
- Publication number
- CN110806925B CN110806925B CN201810887113.6A CN201810887113A CN110806925B CN 110806925 B CN110806925 B CN 110806925B CN 201810887113 A CN201810887113 A CN 201810887113A CN 110806925 B CN110806925 B CN 110806925B
- Authority
- CN
- China
- Prior art keywords
- audio
- cpu
- thread
- buffer queue
- played
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Reverberation, Karaoke And Other Acoustics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供一种音频播放方法及设备,该方法包括:判断当前系统是否为前台系统;若判断当前系统是前台系统,将待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频,其中,在音频缓存队列不为空时,CPU处于唤醒状态,在音频缓存队列为空时,CPU可以进入休眠状态;若判断当前系统不是前台系统,则将待播放音频丢弃,即不放入音频缓存队列,由此后台系统不会触发音频播放,CPU可以进入休眠状态,从而解决了多系统处理中,后台系统音频既不能实际播放,CPU也不能进入休眠的问题。
Description
技术领域
本发明涉及音频处理技术,尤其涉及一种音频播放方法及设备。
背景技术
随着计算机技术的发展,越来越多的操作系统(以下简称系统)随即诞生和升级,到目前为止,系统俨然已经成为终端产品或设备使用的最重要的一种软件。
现有技术中,许多的终端产品或设备支持并且使用多系统,即使用两个或者两个以上的操作系统。在具体实现过程中,其中一个操作系统在前台运行,其它的操作系统将在后台运行。其中,在前台运行的操作系统为用户能够访问的系统,可以称为前台系统,而在后台运行的操作系统为用户不能访问的系统,可以称为后台系统。
但是,采用现有技术,在多系统处理中,后台系统在音频处理时不能实际播放音频,也无法直接约束服务触发的音频播放,一旦后台系统触发服务的音频,音频既不能实际播放,中央处理器(Central Processing Unit,CPU)也不能进入休眠。
发明内容
本发明实施例提供一种音频播放方法及设备,解决了多系统处理中,后台系统音频既不能实际播放,CPU也不能进入休眠的问题。
第一方面,本发明实施例提供一种音频播放方法,包括:判断当前系统是否为前台系统,所述当前系统为运行有音频程序的系统,且所述音频程序对应有待播放的音频;
若是,将所述待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频,其中,在所述音频缓存队列不为空时,CPU处于唤醒状态,在所述音频缓存队列为空时,所述CPU可以进入休眠状态;
若否,则将所述待播放音频丢弃。
在一种可能的设计中,将所述待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频,包括:
调用第一线程,所述第一线程用于将待播放的音频加入音频缓存队列;
调用第二线程,所述第二线程用于按照预设顺序播放所述音频缓存队列中的音频;
调用第三线程,所述第三线程用于监控所述音频缓存队列是否为空,若否,则控制所述CPU处于唤醒状态,若是,则控制所述CPU进入休眠状态。
在一种可能的设计中,所述第三线程还用于:
在监测到所述音频缓存队列中存储有首个音频时,申请CPU锁,所述CPU锁用于维持所述CPU处于唤醒状态;
在监测到所述音频缓存队列中不存在音频时,释放所述CPU锁。
在一种可能的设计中,所述第二线程具体用于按照先进先出的顺序播放所述音频缓存队列中的音频,并将播放完成的音频从所述音频缓存队列中删除。
在一种可能的设计中,判断所述当前系统是否为前台系统,包括:
获取系统状态信息文件,所述系统状态信息文件包括前台系统的标识;
根据所述系统状态信息文件和所述当前系统的标识,判断当前系统是否为前台系统。
在一种可能的设计中,在所述获取系统状态信息文件之前,还包括:
在检测到系统发生切换后,获取前台系统的标识;
根据所述前台系统的标识,生成所述系统状态信息文件。
第二方面,本发明实施例提供一种音频播放设备,包括:
判断模块,用于判断当前系统是否为前台系统,所述当前系统为运行有音频程序的系统,且所述音频程序对应有待播放的音频;
音频播放模块,用于在判断模块的判断结果为是时,将所述待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频,其中,在所述音频缓存队列不为空时,CPU处于唤醒状态,在所述音频缓存队列为空时,所述CPU可以进入休眠状态;
音频丢弃模块,用于在判断模块的判断结果为否时,将所述待播放音频丢弃。
在一种可能的设计中,所述判断模块还具体用于:
获取系统状态信息文件,所述系统状态信息文件包括前台系统的标识;
根据所述系统状态信息文件和所述当前系统的标识,判断当前系统是否为前台系统。
第三方面,本发明实施例提供一种音频播放设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的音频播放方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的音频播放方法。
本实施例提供的音频播放方法及设备,该方法先判断当前系统是否为前台系统;若判断当前系统是前台系统,将待播放的音频加入音频缓存队列中,并按照预设顺序播放音频缓存队列中的音频,其中,在音频缓存队列不为空时,CPU处于唤醒状态,在音频缓存队列为空时,CPU可以进入休眠状态;若判断当前系统不是前台系统,则将待播放音频丢弃,即不放入音频缓存队列,由此后台系统不会触发音频播放,CPU可以进入休眠状态,从而解决了多系统处理中,后台系统音频既不能实际播放,CPU也不能进入休眠的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的音频播放系统图;
图2为本发明实施例提供的音频播放方法的流程示意图一;
图3为本发明实施例提供的音频播放方法的流程示意图二;
图4为本发明实施例提供的音频播放方法的流程示意图三;
图5为本发明实施例提供的音频播放设备的结构示意图一;
图6为本发明实施例提供的音频播放设备的结构示意图二;
图7为本发明实施例提供的音频播放设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的音频播放系统图。本实施例提供的音频播放系统可以设置在手机、平板、计算机等能够进行音频播放的终端内。本实施例对该终端的具体实现方式不做特别限制,只要该终端能够播放音频即可。
如图1所示,该音频播放系统包括:前台系统10、后台系统20以及处理器30。
其中,前台系统10可以根据处理器30的指令运行多个应用程序,该应用程序例如可以为音频程序、视频程序和浏览程序等,在此不做具体限定。例如在本实施例中,前台系统10运行第一应用程序101和第二应用程序102。
同理,后台操作系统20可以根据处理器30的指令运行多个应用程序,该应用程序例如可以为上述的音频程序、视频程序和浏览程序等,在此不做具体限定。例如在本实施例中,后台系统20运行第三应用程序201和第四应用程序202。
其中,前台系统10为用户可以访问的系统,当用户想要访问后台系统20时,处理器30根据用户指令对前台系统10和后台系统20进行切换,使原来的后台系统20在前台运行,变为前台系统,而使原来的前台系统10在后台运行,变为后台系统。
在不同的场景下,前台系统10和后台系统20的运行方式会有不同。一种场景为,前台系统10的应用程序和后台系统20的各应用程序同时运行;在另一种场景下,只有前台系统10的应用程序运行;在另一种场景下,只有后台系统20的应用程序运行。系统运行的状态具体由用户的实际使用场景决定,本实施例不做特别限定。
在上述图1所示的实施例中,后台系统20在音频处理时不能实际播放音频,也无法直接约束服务触发的音频播放,一旦后台系统20触发服务的音频,音频既不能实际播放,CPU也不能进入休眠。基于该问题本发明实施例提供一种音频播放方法,该方法在不改变图1的基础上,来解决后台系统触发服务的音频,音频既不能实际播放,CPU也不能进入休眠的问题。下面结合图2进行详细说明。
图2为本发明实施例提供的音频播放方法的流程示意图一,本实施例的执行主体为上述的终端。如图2所示,该方法包括:
S201、判断当前系统是否为前台系统,所述当前系统为运行有音频程序的系统,且所述音频程序对应有待播放的音频;若是,执行S202,若否,执行S203;
S202、将待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频,其中,在所述音频缓存队列不为空时,CPU处于唤醒状态,在所述音频缓存队列为空时,所述CPU可以进入休眠状态;
S203、将所述待播放音频丢弃。
具体地,当前系统即为终端上运行有音频程序的系统,音频程序对应有待播放的音频。
如果当前系统是前台系统,则将待播放的音频放入音频缓存队列中,并且按照预设顺序来播放音频缓存队列中的音频。音频缓存队列可以放入多个待播放音频,具体数量本实施例不做特别限定。
预设顺序可以为先进先出的顺序,即先播放先放入音频缓存队列中的音频,也可以为后入先出的顺序,即先播放后放入音频缓存队列中的音频,也可以为其他,本实施例不做具体限定。当音频缓存队列中有音频,音频缓存队列不为空时,CPU一直处于唤醒状态,前台系统运行音频程序,播放音频缓存队列中的待播放音频。当音频缓存队列中的没有音频,音频缓存队列为空时,CPU可以进入休眠状态,前台系统不运行音频程序。
如果当前系统不是前台系统,即当前系统为后台系统,则将待播放的音频直接丢弃,不放入音频缓存队列。由于后台系统对应的待播放音频没有放入缓存队列中,即针对后台系统而言,音频缓存队列为空,因此,后台系统不会触发音频播放,从而避免了后台系统无法直接约束服务触发的音频播放,同时当音频缓存队列为空时,由于后台系统不会触发音频播放,所以CPU可以进入休眠状态,不会被唤醒。
若前台系统和后台系统均运行有音频程序,且都有待播放的音频文件,则当前系统存在两个,即第一当前系统和第二当前系统。若第一当前系统为前台系统,则执行上述S202所述的步骤,第二当前系统为后台系统,则执行上述S203所述的步骤。
当前台系统和后台系统均运行有音频程序时,前台系统的音频程序运行完之后,即待播放音频也播放完成,由于后台系统对应的待播放音频被丢弃,则不会再继续运行后台系统的音频程序,因此,后台系统不会触发音频播放,CPU可以从唤醒状态进入休眠状态,避免了CPU无法进入休眠状态的问题。
本实施例提供的音频播放方法,先判断当前系统是否为前台系统;当前系统为运行有音频程序的系统,且音频程序对应有待播放的音频;若判断当前系统是前台系统,将待播放的音频加入音频缓存队列中,并按照预设顺序播放音频缓存队列中的音频,其中,在音频缓存队列不为空时,CPU处于唤醒状态,在音频缓存队列为空时,所述CPU可以进入休眠状态;若判断当前系统不是前台系统,则将待播放音频丢弃,即不放入音频缓存队列,由此后台系统不会触发音频播放,CPU可以进入休眠状态,从而解决了多系统处理中,后台系统音频既不能实际播放,CPU也不能进入休眠的问题。
下面结合具体的实施例,来说明如何将将待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频。
图3为本发明实施例提供的音频播放方法的流程示意图二,如图3所示,该方法包括:
S301、调用第一线程,所述第一线程用于将待播放的音频加入音频缓存队列;
具体地,先创建一个第一线程,该第一线程用于将待播放的音频加入音频缓存队列。其中,线程也被称为轻量进程,是程序执行流的最小单元。在创建完第一线程后,在判断当前系统是前台系统后,调用该第一线程,将待播放音频加入音频缓存队列。
可选地,若没有先创建第一线程,在判断当前系统是前台系统后,再创建上述第一线程,创建后调用第一线程,将待播放的音频加入音频缓存队列。
S302、调用第二线程,所述第二线程用于按照预设顺序播放所述音频缓存队列中的音频;
具体地,先创建第二线程,该第二线程用于按照预设顺序播放音频缓存队列中的音频。将待播放的音频加入音频缓存队列后,调用该第二线程。预设顺序可以为先进先出的顺序,即先播放先放入音频缓存队列中的音频,也可以为后入先出的顺序,即先播放后放入音频缓存队列中的音频,也可以为其他。
例如在本实施例中,按照先进先出的顺序播放所述音频缓存队列中的音频,即先播放先放入音频缓存队列中的音频,并将播放完成的音频从音频缓存队列中删除。
可选地,若没有先创建第二线程,将待播放的音频加入音频缓存队列后,再创建第二线程,创建后调用第二线程,按照预设顺序播放音频缓存队列中的音频。
S303、调用第三线程,所述第三线程用于监控所述音频缓存队列是否为空,若否,则控制所述CPU处于唤醒状态,若是,则控制所述CPU进入休眠状态。
具体地,先创建第三线程,该第三线程用于在监测到音频缓存队列中存储有首个音频时,维持CPU处于唤醒状态,同时监控音频缓存队列中是否还有音频,如果有,则音频缓存队列不为空,控制CPU处于唤醒状态;如果音频缓存队列没有音频,则音频缓存队列为空,控制CPU进入休眠状态。
示例性的,一种可能的实现方式为通过CPU锁,控制CPU处于唤醒还是休眠状态。具体地,该CPU锁可以对应前台系统的节点文件中的指示符,内核可以根据该指示符来控制CPU处于唤醒还是休眠状态。
例如,前台系统具有两个节点文件,分别为第一节点文件和第二节点文件。若第一节点文件的值为0,则不申请CPU锁,CPU处于休眠状态;若第一节点文件的值为1,则该指示符用于指示申请CPU锁,将CPU唤醒,并锁定在唤醒状态。
若第二节点文件的值为0,则保持CPU锁,CPU维持唤醒状态;若第二节点文件的值为1,则该指示符用于指示释放CPU锁,控制CPU从唤醒状态切换到休眠状态,并锁定在休眠状态。
可选地,若没有先创建第三线程,按照预设顺序播放音频缓存队列中的音频后,再创建第三线程,创建后调用第三线程,监控音频缓存队列是否为空。
本实施提供的音频播放方法,在判断当前系统为前台系统后,调用第一线程,第一线程用于将待播放的音频加入音频缓存队列;调用第二线程,第二线程用于按照预设顺序播放音频缓存队列中的音频;调用第三线程,第三线程用于监控音频缓存队列是否为空,若否,则控制CPU处于唤醒状态,若是,则控制CPU进入休眠状态。本实施提供的音频播放方法,能够按照预设的顺序依次播放音频缓存队列中的音频,同时将播放的音频从音频缓存队列中删除,有效的释放内存,节省空间。同时在音频缓存队列中的所有音频播放完成后,清空音频缓存队列,释放CPU锁,控制CPU进入休眠,降低功耗,增加终端的待机时长。
图4为本发明实施例提供的音频播放方法的流程示意图三,如图4所示,该方法包括:
S401、在检测到系统发生切换后,获取前台系统的标识;
具体地,在实际使用过程中,经常会根据需要发生系统的切换。例如用户想要操作后台系统20,就需要将后台系统20和前台系统10进行切换;或者用户不想对前台系统10进行操作,就需要将前台系统10和后台系统20进行切换。
在检测到系统发生切换后,获取系统发生切换后前台系统的标识。每检测到系统发生切换,就获取系统发生切换后前台系统的标识。其中系统标识可以为系统类型、安装内存、处理器信息、制造商信息等,本实施例在此不做具体限制。
S402、根据前台系统的标识,生成所述系统状态信息文件。
具体地,根据系统发生切换后前台系统的系统标识,例如系统类型、安装内存、处理器信息、制造商信息等,生成系统状态信息文件,并对该系统状态信息文件进行存储,将之前存储的系统状态信息文件覆盖。
S403、根据所述系统状态信息文件和所述当前系统的标识,判断当前系统是否为前台系统。
若是,执行S404;若否,执行S405。
具体地,将系统状态信息文件和当前系统的标识作比较,如果当前系统的标识和系统状态信息文件一致,即当前系统的标识和前台系统的标识一致,则当前系统为前台系统,执行S404;当前系统的标识和系统状态信息文件不一致,即当前系统的标识和前台系统的标识不一致,则当前系统不是前台系统,执行S405。
S404、将待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频,其中,在所述音频缓存队列不为空时,CPU处于唤醒状态,在所述音频缓存队列为空时,所述CPU可以进入休眠状态。
本实施例提供的S404与图2实施例中的S202类似,本实施例此处不再赘述。
S405、将所述待播放音频丢弃。
本实施例提供的S404与图2实施例中的S203类似,本实施例此处不再赘述。
本发明实施例提供的音频播放方法,在检测到终端的系统发生切换后,获取切换后的前台系统的标识;根据前台系统的标识,生成系统状态信息文件;根据系统状态信息文件和前台系统的标识,判断当前系统是否为前台系统;若当前系统是前台系统,将待播放的音频加入音频缓存队列中,并按照预设顺序播放音频缓存队列中的音频,其中,在音频缓存队列不为空时,CPU处于唤醒状态,以保证当前系统可以正常播放音频,在所述音频缓存队列为空时,所述CPU可以进入休眠状态;若当前系统不是前台系统,则将待播放音频丢弃。本实施提供的音频播放方法,可以实际控制音频播放过程,做到后台系统不播放音频,又可以兼顾稳定性,防止出现后台系统缓冲区溢出的现象。同时后台系统不会再触发音频播放,避免了后台系统音频既不能实际播放,CPU也不能进入休眠的问题。
图5为本发明实施例提供的音频播放设备的结构示意图一。如图5所示,该音频播放设备50包括:判断模块501、音频播放模块502、音频丢弃模块503。
判断模块501,用于判断当前系统是否为前台系统,所述当前系统为运行有音频程序的系统,且所述音频程序对应有待播放的音频;
音频播放模块502,用于在判断模块的判断结果为是时,将所述待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频,其中,在所述音频缓存队列不为空时,CPU处于唤醒状态,在所述音频缓存队列为空时,所述CPU可以进入休眠状态;
音频丢弃模块503,用于在判断模块的判断结果为否时,将所述待播放音频丢弃。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明实施例提供的音频播放设备的结构示意图二。本实施例在上述图5实施例的基础上,还包括:获取模块504。
可选地,判断模块501具体用于:
获取系统状态信息文件,所述系统状态信息文件包括前台系统的标识;
根据所述系统状态信息文件和所述当前系统的标识,判断当前系统是否为前台系统。
可选地,获取模块504用于:
在所述获取系统状态信息文件之前,在检测到系统发生切换后,获取前台系统的标识;
根据所述前台系统的标识,生成所述系统状态信息文件。
可选地,音频播放模块502具体用于:
调用第一线程,所述第一线程用于将待播放的音频加入音频缓存队列;
调用第二线程,所述第二线程用于按照预设顺序播放所述音频缓存队列中的音频;
调用第三线程,所述第三线程用于监控所述音频缓存队列是否为空,若否,则控制所述CPU处于唤醒状态,若是,则控制所述CPU进入休眠状态。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明实施例提供的音频播放设备的硬件结构示意图。如图7所示,本实施例提供的音频播放设备70包括:
处理器701以及存储器702;其中
存储器702,用于存储计算机执行指令;
例如在本实施例中,播放音频的指令,切换当前系统的指令,前台系统和后台系统各应用程序的指令,创建和调用各线程的指令,控制CPU进入唤醒和休眠状态的指令,获取系统状态信息文件的指令等,均存储在存储器702。存储器702也可以存储除了上述指令以外的其他计算机执行指令,在此不做具体限制。
处理器701,用于执行存储器存储的计算机执行指令。
例如在本实施例中,处理器可以执行播放音频的指令,切换当前系统的指令,前台系统和后台系统各应用程序的指令,创建和调用各线程的指令,控制CPU进入唤醒和休眠状态的指令,获取系统状态信息文件的指令等。处理器701也可以执行除了上述指令以外,在存储器中存储的其他计算机执行指令,在此不做具体限制。
处理器701通过执行存储器存储的计算机执行指令,实现了上述实施例中音频播放设备所执行的各个步骤。具体可以参见上述方法实施例中的相关描述。
可选地,存储器702既可以是独立的,也可以跟处理器701集成在一起,本实施例不做具体限定。
当存储器702独立设置时,该音频播放设备还包括总线703,用于连接所述存储器702和处理器701。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的音频播放方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (4)
1.一种音频播放方法,其特征在于,包括:
在检测到系统发生切换后,获取前台系统的标识;
根据所述前台系统的标识,生成系统状态信息文件,所述系统状态信息 文件包括前台系统的标识;
根据所述系统状态信息文件和当前系统的标识,判断所述当前系统是否为前台系统,所述当前系统为运行有音频程序的系统,且所述音频程序对应有待播放的音频;
若是,将所述待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频,其中,在所述音频缓存队列不为空时,CPU处于唤醒状态,在所述音频缓存队列为空时,所述CPU进入休眠状态;
若否,则将所述待播放音频丢弃;
将所述待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频,包括:
调用第一线程,所述第一线程用于将待播放的音频加入音频缓存队列;
调用第二线程,所述第二线程用于按照预设顺序播放所述音频缓存队列中的音频;
调用第三线程,所述第三线程用于监控所述音频缓存队列是否为空,若否,则控制所述CPU处于唤醒状态,若是,则控制所述CPU进入休眠状态;
所述第三线程还用于:
在监测到所述音频缓存队列中存储有首个音频时,申请CPU锁,所述CPU锁用于维持所述CPU处于唤醒状态;
在监测到所述音频缓存队列中不存在音频时,释放所述CPU锁;
所述第二线程具体用于按照先进先出的顺序播放所述音频缓存队列中的音频,并将播放完成的音频从所述音频缓存队列中删除。
2.一种音频播放设备,其特征在于,包括:
获取模块,用于在检测到系统发生切换后,获取前台系统的标识;根据所述前台系统的标识,生成系统状态信息文件,所述系统状态信息 文件包括前台系统的标识;
判断模块,用于根据所述系统状态信息文件和当前系统的标识,判断所述当前系统是否为前台系统,所述当前系统为运行有音频程序的系统,且所述音频程序对应有待播放的音频;
音频播放模块,用于在判断模块的判断结果为是时,将所述待播放的音频加入音频缓存队列中,并按照预设顺序播放所述音频缓存队列中的音频,其中,在所述音频缓存队列不为空时,CPU处于唤醒状态,在所述音频缓存队列为空时,所述CPU进入休眠状态;
音频丢弃模块,用于在判断模块的判断结果为否时,将所述待播放音频丢弃;
所述音频播放模块具体用于:
调用第一线程,所述第一线程用于将待播放的音频加入音频缓存队列;
调用第二线程,所述第二线程用于按照预设顺序播放所述音频缓存队列中的音频;
调用第三线程,所述第三线程用于监控所述音频缓存队列是否为空,若否,则控制所述CPU处于唤醒状态,若是,则控制所述CPU进入休眠状态;
所述第三线程还用于:
在监测到所述音频缓存队列中存储有首个音频时,申请CPU锁,所述CPU锁用于维持所述CPU处于唤醒状态;
在监测到所述音频缓存队列中不存在音频时,释放所述CPU锁;
所述第二线程具体用于按照先进先出的顺序播放所述音频缓存队列中的音频,并将播放完成的音频从所述音频缓存队列中删除。
3.一种语音交互设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1所述的音频播放方法。
4.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1所述的音频播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810887113.6A CN110806925B (zh) | 2018-08-06 | 2018-08-06 | 音频播放方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810887113.6A CN110806925B (zh) | 2018-08-06 | 2018-08-06 | 音频播放方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110806925A CN110806925A (zh) | 2020-02-18 |
CN110806925B true CN110806925B (zh) | 2022-08-23 |
Family
ID=69487165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810887113.6A Active CN110806925B (zh) | 2018-08-06 | 2018-08-06 | 音频播放方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110806925B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111680237B (zh) * | 2020-06-10 | 2023-06-16 | 创新奇智(北京)科技有限公司 | 一种对象的处理方法、装置、电子设备及存储介质 |
CN112579040B (zh) * | 2020-12-25 | 2023-03-14 | 展讯半导体(成都)有限公司 | 嵌入式设备的录音方法及相关产品 |
CN112887404B (zh) * | 2021-01-26 | 2023-08-11 | 努比亚技术有限公司 | 一种音频传输控制方法、设备及计算机可读存储介质 |
CN113391926A (zh) * | 2021-06-28 | 2021-09-14 | 京东方科技集团股份有限公司 | 一种播放数据的方法、装置及电子设备 |
CN113486207A (zh) * | 2021-07-14 | 2021-10-08 | 深圳大趋智能科技有限公司 | 一种基于dac实现的语音播报方法及装置 |
CN117632452A (zh) * | 2022-08-15 | 2024-03-01 | 华为技术有限公司 | 应用处理方法和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779070A (zh) * | 2011-02-14 | 2012-11-14 | 微软公司 | 移动设备上的后台音频 |
CN103793280A (zh) * | 2014-01-17 | 2014-05-14 | 深圳市东微智能科技有限公司 | 一种音频缓冲处理方法 |
CN105930175A (zh) * | 2016-05-31 | 2016-09-07 | 京东方科技集团股份有限公司 | 关闭应用工具的方法和装置 |
CN108009006A (zh) * | 2016-11-02 | 2018-05-08 | 华为技术有限公司 | I/o请求的调度方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730248B2 (en) * | 2007-12-13 | 2010-06-01 | Texas Instruments Incorporated | Interrupt morphing and configuration, circuits, systems and processes |
CN103268262A (zh) * | 2013-04-28 | 2013-08-28 | 北京创毅讯联科技股份有限公司 | 一种多基带访问单用户识别卡的方法以及一种处理器 |
US9558035B2 (en) * | 2013-12-18 | 2017-01-31 | Oracle International Corporation | System and method for supporting adaptive busy wait in a computing environment |
CN105808198A (zh) * | 2014-12-29 | 2016-07-27 | 乐视移动智能信息技术(北京)有限公司 | 应用于安卓系统的音频文件处理方法及装置、终端 |
CN105488008B (zh) * | 2015-12-01 | 2018-03-23 | 四川神琥科技有限公司 | 数据实时传输方法 |
CN106648704A (zh) * | 2017-01-05 | 2017-05-10 | 广东欧珀移动通信有限公司 | 一种进程管理的方法、装置及移动终端 |
CN106878284A (zh) * | 2017-01-13 | 2017-06-20 | 北京元心科技有限公司 | 多系统中媒体播放功能的控制方法及装置 |
CN106951314B (zh) * | 2017-03-10 | 2020-06-09 | 清华大学 | 面向Android系统后台服务自动唤醒的切断方法 |
-
2018
- 2018-08-06 CN CN201810887113.6A patent/CN110806925B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779070A (zh) * | 2011-02-14 | 2012-11-14 | 微软公司 | 移动设备上的后台音频 |
CN103793280A (zh) * | 2014-01-17 | 2014-05-14 | 深圳市东微智能科技有限公司 | 一种音频缓冲处理方法 |
CN105930175A (zh) * | 2016-05-31 | 2016-09-07 | 京东方科技集团股份有限公司 | 关闭应用工具的方法和装置 |
CN108009006A (zh) * | 2016-11-02 | 2018-05-08 | 华为技术有限公司 | I/o请求的调度方法及装置 |
Non-Patent Citations (3)
Title |
---|
"A Flexible Front-End Signal Processor for High-Speed Image Sensor Readout";Carl Grace;《Physics Procedia》;20120229;第37卷;第1674-1689页 * |
"Linux进程的休眠(等待队列)";桃子红了呐;《https://developer.aliyun.com/article/364290》;20171228;第1-5页 * |
"音视频实时处理系统的设计与实现";张镔;《中国优秀硕士学位论文全文数据库 信息科技辑》;20100515(第05期);第I138-760页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110806925A (zh) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110806925B (zh) | 音频播放方法及设备 | |
US9965188B2 (en) | Memory cleaning method and apparatus, and terminal device | |
US8028177B2 (en) | Method for changing power states of a computer | |
US11301029B2 (en) | Method, apparatus, and system for allocating power to graphics processing unit | |
CN108566634B (zh) | 降低蓝牙音箱连续唤醒延时的方法、装置及蓝牙音箱 | |
CN108132735B (zh) | 终端与应用控制方法 | |
CN109313604B (zh) | 用于压缩虚拟存储器的动态配置的计算系统、装置和方法 | |
CN109905770B (zh) | 终端开机启动方法、装置及终端 | |
US20170269984A1 (en) | Systems and methods for improved detection of processor hang and improved recovery from processor hang in a computing device | |
CN114546634B (zh) | 对系统的同步重启的管理 | |
JP2005539322A5 (zh) | ||
CN107408073B (zh) | 使用存储器压缩来减少存储器提交开销 | |
CN115576645A (zh) | 一种虚拟处理器调度方法、装置、存储介质及电子设备 | |
US20160292994A1 (en) | Suppress and Resume Notifications Based on Motion | |
US20090307403A1 (en) | System for executing system management interrupts and methods thereof | |
CN108132803B (zh) | 基于移动终端的定时保活及唤醒方法、系统、终端及介质 | |
CN108009039B (zh) | 终端信息的记录方法、装置、存储介质及电子设备 | |
JP5557612B2 (ja) | 計算機及び転送プログラム | |
CN115587049A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
WO2021037111A1 (zh) | 应用管理方法、装置、终端和可读存储介质 | |
CN107643951B (zh) | 进程处理方法、装置及电子设备 | |
CN113596250B (zh) | 一种终端设备的免打扰模式控制方法、装置和一种通信装置及可读存储介质 | |
CN112148548B (zh) | 启动次数确定方法、装置及设备 | |
WO2024099017A1 (zh) | 一种进程管理方法、电子设备及存储介质 | |
CN111104286B (zh) | 功耗管理方法、服务器和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |