CN111580776B - 音频功能恢复方法、装置、终端及存储介质 - Google Patents
音频功能恢复方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN111580776B CN111580776B CN202010352399.5A CN202010352399A CN111580776B CN 111580776 B CN111580776 B CN 111580776B CN 202010352399 A CN202010352399 A CN 202010352399A CN 111580776 B CN111580776 B CN 111580776B
- Authority
- CN
- China
- Prior art keywords
- audio
- notification
- session
- subroutine
- function
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000011084 recovery Methods 0.000 title claims abstract description 61
- 230000004044 response Effects 0.000 claims abstract description 27
- 230000006870 function Effects 0.000 claims description 183
- 230000008569 process Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 10
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering 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/162—Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
-
- 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
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
- Telephone Function (AREA)
Abstract
本申请公开了一种音频功能恢复方法、装置、终端及存储介质,涉及终端技术领域。方法包括:通过第一音频子程序配置音频会话,并通过音频会话调用音频硬件资源;响应于功能切换指令,通过第二音频子程序重新配置音频会话,并通过音频会话调用音频硬件资源,第二音频子程序配置音频会话后,第一音频子程序的音频功能中断;响应于第二音频子程序的关闭指令,通过通知中心向第一音频子程序发送恢复通知;根据恢复通知,通过第一音频子程序重新配置音频会话,重新配置音频会话后第一音频子程序的音频功能恢复。本申请实施例实现了音频功能的自动恢复,避免同一应用程序中不同子程序使用音频硬件时出现音频功能异常,提高了音频功能的稳定性。
Description
技术领域
本申请实施例涉及终端技术领域,特别涉及一种音频功能恢复方法、装置、终端及存储介质。
背景技术
音视频音频会话(AVAudioSession)是苹果移动终端操作系统(Iphone OperationSystem,IOS)中与应用程序之间的媒介,用于配置应用程序与音频相关的属性和行为。
由于应用程序的音频会话(AudioSession)是一个单例对象(即在整个应用程序的生命周期内,单例对象的类必须保证只有一个实例对象存在),因此当应用程序中包含至少两个先后使用音频硬件的子程序时,子程序先后使用音频硬件会出现音频功能异常(包括音频录制功能或音频播放功能)的问题。
发明内容
本申请实施例提供了一种音频功能恢复方法、装置、终端及存储介质,可以避免同一应用程序中不同子程序先后使用音频硬件时出现音频功能异常的问题,提高音频功能的稳定性。所述技术方案如下:
一方面,本申请实施例提供了一种音频功能恢复方法,应用于安装有目标应用程序的终端,所述目标应用程序中包括至少两个音频子程序和通知中心,所述音频子程序是在运行过程中使用所述终端的音频硬件的程序;
所述方法包括:
通过第一音频子程序配置音频会话,并通过所述音频会话调用音频硬件资源;
响应于功能切换指令,通过第二音频子程序重新配置所述音频会话,并通过所述音频会话调用所述音频硬件资源,其中,所述第二音频子程序配置所述音频会话后,所述第一音频子程序的音频功能中断;
响应于所述第二音频子程序的关闭指令,通过所述通知中心向所述第一音频子程序发送恢复通知;
根据所述恢复通知,通过所述第一音频子程序重新配置所述音频会话,其中,重新配置所述音频会话后所述第一音频子程序的音频功能恢复。。
另一方面,本申请实施例提供了一种音频功能恢复装置,所述装置包括:
第一音频程序模块,用于配置音频会话,并通过所述音频会话调用音频硬件资源;
第二音频程序模块,用于响应于功能切换指令,重新配置所述音频会话,并通过所述音频会话调用所述音频硬件资源,其中,所述第第二音频程序模块配置所述音频会话后,所述第一音频程序模块的音频功能中断;
通知中心模块,用于响应于所述第二音频程序模块的关闭指令,向所述第一音频程序模块发送恢复通知;
所述第一音频程序模块,还用于根据所述恢复通知重新配置所述音频会话,其中,重新配置所述音频会话后所述第一音频程序模块的音频功能恢复。
再一方面,本申请实施例提供一种终端,所述终端包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述音频功能恢复方法。
又一方面,本申请实施例提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述音频功能恢复方法。
还一方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被计算机设备的处理器执行时,其用于实现上述音频功能恢复方法。
本申请实施例提供的技术方案可以带来如下有益效果:
对于包括至少两个音频子程序(在运行过程中需要使用音频硬件)的应用程序而言,在其中的第一音频子程序通过配置音频会话调用音频硬件资源以实现音频功能的情况下,若接收到功能切换指令,第二音频子程序则通过重新配置音频会话的方式调用音频硬件资源,在实现自身音频功能的情况下终端第一音频子程序的音频功能;而当第二音频子程序关闭时,应用程序中的通知中心则向第一音频子程序发送恢复通知,使得第一音频子程序能够根据该恢复通知,在第二音频子程序关闭时自动恢复音频功能,实现了音频功能的自动恢复,能够避免同一应用程序中不同子程序先后使用音频硬件时出现音频功能异常的问题,提高了音频功能的稳定性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的应用程序的程序架构图;
图2是本申请一个实施例提供的音频功能恢复方法的流程图;
图3是本申请另一个实施例提供的音频功能恢复方法的流程图;
图4是图3所示音频功能恢复方法实施过程的实施示意图;
图5是一个示例性实施例提供的功能切换指令触发过程的界面示意图;
图6是本申请另一个实施例提供的音频功能恢复方法的流程图;
图7是本申请一个实施例提供的音频功能恢复装置的框图;
图8是本申请一个实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
相关技术中,对于包含至少两个音频子程序的应用程序,为了避免多个音频子程序先后使用音频硬件资源时,由于混杂的音频会话操作导致音频功能无法正常使用的问题,在一个音频子程序(比如音频子程序A)调用音频硬件资源的过程中,若另一音频子程序(比如音频子程序B)也需要使用音频硬件资源,首先需要释放音频子程序A使用的所有音频硬件资源,并执行音频会话关闭流程。进一步的,在音频子程序A完全关闭后,音频子程序B完成启动,并执行音频会话配置以及启动流程,使得音频子程序B能够使用音频硬件资源,从而实现相应的音频功能。
当音频子程序B的音频功能关闭时,音频子程序B则释放使用的所有音频硬件资源,并执行音频会话关闭流程。而为了在音频子程序B关闭后,重新恢复音频子程序A的音频功能,应用程序需要在音频子程序B关闭后重新启动音频子程序A,而这个过程中需要严格匹配音频子程序B的关闭以及音频子程序A的开启时序,实现音频功能之间的无感切换。
显然,采用上述方式虽然能够避免音频功能异常的问题,但是音频功能恢复流程繁琐,且需要进行严格时序匹配,这一定程度上增加了应用程序的开发成本,影响了应用程序的开发效率。
为了在保证音频功能稳定性的前提下,简化音频功能的恢复流程,提高应用程序的开发效率,本申请实施例提供了一种音频功能恢复方法。本申请实施例提供的音频功能恢复方法应用于安装有目标应用程序的终端中,该终端可以是智能手机、平板电脑或数码播放器等等。
本申请实施例中,目标应用程序是具有音频功能的应用程序,该音频功能包括音频播放功能和音频录制功能中的至少一种。可选的,目标应用程序可以是短视频应用程序(具有短视频播放和短视频录制功能)、直播类应用程序(具有观看直播以及开启直播功能)或社交应用程序(具有视频分享以及视频拍摄功能)等等,本申请实施例并不对目标应用程序的具体类型进行限定。
如图1所示,其示出了本申请一个实施例提供的应用程序的程序架构图。目标应用程序10具有至少两个音频子程序11,该音频子程序11指在运行过程中使用音频硬件,以实现相应音频功能的程序。比如,当目标应用程序为短视频应用程序时,该音频子程序可以是实现直播播放功能的子程序以及实现短视频播放的子程序;或者,该音频子程序可以是实现视频录制的子程序以及进行视频录制教学(比如通过播放演示视频进行教学)的子程序。
当然,除了包含音频子程序外,目标应用程序中还可以包含实现其他应用功能的子程序,本申请实施例对此并不进行限定。
为了实现音频功能自动恢复,如图1所示,目标应用程序10中还包括通知中心12,该通知中心12与各个音频子程序11之间进行数据通信。可选的,各个音频子程序11在配置音频会话过程中,在通知中心12处进行注册,完成注册的音频子程序11即能够实现自动音频恢复。
在一个示例性的例子中,第一音频子程序首先在通知中心12处进行注册,并通过配置音频会话实现自身的音频功能;当第二音频子程序需要实现其音频功能时,第二音频子程序同样在通知中心12处进行注册,并通过重配音频话实现音频功能(第一音频子程序的音频功能中断)。当第二音频子程序的音频功能关闭时,通知中心12即向先前注册的第一音频子程序发送恢复通知,以便音频功能中断的第一音频子程序根据该恢复通知自动恢复音频功能。
下述各个实施例以音频恢复方法应用于安装有图1所示目标应用程序的终端为例进行说明。
请参考图2,其示出了本申请一个实施例提供的音频功能恢复方法的流程图。该方法可以包括如下步骤:
步骤201,通过第一音频子程序配置音频会话,并通过音频会话调用音频硬件资源。
可选的,音频硬件资源包括音频输入硬件资源和音频输出硬件资源中的至少一种。
其中,第一音频子程序是在运行过程中使用音频硬件(调用音频硬件资源)的程序,且调用的音频硬件资源与第一音频子程序所要实现的功能相关。可选的,当第一音频子程序实现的功能的包括音频播放时,其调用的音频硬件资源为音频输出硬件资源,比如(内置或外接)扬声器、外接耳机;当第一音频子程序实现的功能包括音频采集时,其调用的音频硬件资源为音频输入硬件资源,比如(内置或外接)麦克风。
目标应用程序运行过程中,当需要实现第一音频子程序对应的音频功能时,终端首先通过第一音频子程序配置音频会话(在目标应用程序生命周期内的单例对象),并通过该音频会话调用相应的音频硬件资源,从而实现第一音频子程序对应的音频功能。其中,该音频会话通过操作系统实现音频硬件资源的调用。
在一种可能的实施方式中,第一音频子程序根据预设配置信息进行音频会话配置时,其中,该预设配置信息可以包括音频种类(Category)和音频路径(Route)。此外,在完成音频会话配置后,第一音频子程序激活音频会话。
步骤202,响应于功能切换指令,通过第二音频子程序重新配置音频会话,并通过音频会话调用音频硬件资源,其中,第二音频子程序配置音频会话后,第一音频子程序的音频功能中断。
可选的,在使用第一音频子程序对应音频功能的过程中,当接收到对功能切换指令时,应用程序需要中断第一音频子程序的音频功能,并启用第二音频子程序的音频功能。其中,该动能切换指令在第一音频子程序对应音频功能开启过程中触发。
在一种可能的实施方式中,该功能切换指令可以通过第一音频子程序对应用户界面中的指定控件触发。比如,第一音频子程序对应的用户界面为直播界面,且直播界面中包含短视频控件,该短视频控件用于触发跳转播放主播对应的短视频(即第二音频子程序的功能为短视频播放),相应的,当接收到对短视频控件的触发操作时,终端确定接收到功能切换指令。
不同于相关技术中需要在第一音频子程序完全关闭后,启动第二音频子程序,本申请实施例中,当接收到功能切换指令时,终端通过第二音频子程序重新配置音频会话,由于音频会话经过了重新配置,因此第一音频子程序的音频功能被自动中断,相应的,第二音频子程序可以通过重配后的音频画画调用相应的音频硬件资源,实现第二音频子程序的音频功能。其中,第二音频子程序重配音频会话的过程可以参考第一音频子程序配置音频会话的过程。
可选的,第二音频子程序调用的音频硬件资源与第一音频子程序调用的音频硬件资源相同或不同。比如,当第一音频子程序和第二音频子程序的音频功能均为音频播放功能时,调用的音频硬件资源均为扬声器;当第一音频子程序的音频功能均为音频录制功能,而第二音频子程序的音频功能为音频播放功能时,调用的音频硬件资源由扬声器变为麦克风。
步骤203,响应于第二音频子程序的关闭指令,通过通知中心向第一音频子程序发送恢复通知。
为了实现音频功能自动恢复,本申请实施例中创造性的在应用程序内部设置独立的通知中心,从而在抢占的音频子程序关闭时,通过该通知中心通知被抢占的音频子程序(即音频功能中断的音频子程序)恢复音频功能。
可选的,当接收到第二音频子程序的关闭指令,确定停止使用第二音频子程序的音频功能,从而向应用程序内部的通知中心发送关闭通知,以便通过通知中心向第一音频子程序发送恢复通知。其中,关闭指令可以通过第二音频子程序对应用户界面中的控件触发。
在一种可能的实施方式中,通知中心设置有通知列表,该通知列表中包含各个音频子程序的注册信息,该注册信息由音频子程序在配置音频会话时向通知中心发送。相应的,通知中心即基于通知列表确定出恢复音频功能的音频子程序,并根据该音频子程序对应的注册信息,向该音频子程序发送恢复通知。
步骤204,根据恢复通知,通过第一音频子程序重新配置音频会话,其中,重新配置音频会话后第一音频子程序的音频功能恢复。
接收到恢复通知后,终端通过第一音频子程序重新配置音频会话,从而恢复第一音频子程序的音频功能。其中,第一音频子程序重配音频会话的过程可以参考上述步骤201,本实施例在此不再赘述。
在一种可能的应用场景下,目标应用程序为短视频应用程序,且包括实现直播播放功能的第一音频子程序和实现短视频播放功能(在直播过程中通过控件触发)的第二音频子程序。当用户使用短视频应用程序观看直播时,第一音频子程序即配置音频会话,从而通过扬声器播放直播音频。观看直播过程中,当用户点击直播界面中的短视频控件时,终端即通过第二音频子程序重配音频会话,使得直播音频中断,而开始播放短视频音频。当用户关闭短视频界面,并重新观看直播时,终端通过通知中心向第一音频子程序发送恢复通知,并关闭第二音频子程序,使得第一音频子程序能够重配音频会话,并恢复直播音频播放。
在另一种可能的应用场景下,目标应用程序为短视频应用程序,且包括实现短视频录制功能的第一音频子程序和实现短视频录制教学功能(通过播放带有音频的视频进行教学)的第二音频子程序。当用户使用短视频应用程序进行短视频录制时,第一音频子程序即配置音频会话,从而通过麦克风采集环境音。在短视频录制过程中,当用户点击短视频录制中的教学控件时,终端即通过第二音频子程序重配音频会话,使得麦克风停止采集环境音,而开始通过扬声器播放教学视频的音频。当教学视频播放完毕,并重新进行短视频拍摄时,终端通过通知中心向第一音频子程序发送恢复通知,并关闭第二音频子程序,使得第一音频子程序能够重配音频会话,并环境音录制。
通过在应用程序中设置通知中心,并借助通知中心实现音频功能的自动恢复,在保证音频功能稳定的同时,简化了音频功能的恢复流程;此外,音频子程序的开发人员只需要在音频子程序中实现“关闭子程序时通知通知中心”这一功能,即可保证其他音频子程序的正常恢复,从而简化了应用程序的开发流程,提高了开发效率。
综上所述,本申请实施例中,对于包括至少两个音频子程序(在运行过程中需要使用音频硬件)的应用程序而言,在其中的第一音频子程序通过配置音频会话调用音频硬件资源以实现音频功能的情况下,若接收到功能切换指令,第二音频子程序则通过重新配置音频会话的方式调用音频硬件资源,在实现自身音频功能的情况下终端第一音频子程序的音频功能;而当第二音频子程序关闭时,应用程序中的通知中心则向第一音频子程序发送恢复通知,使得第一音频子程序能够根据该恢复通知,在第二音频子程序关闭时自动恢复音频功能,实现了音频功能的自动恢复,能够避免同一应用程序中不同子程序先后使用音频硬件时出现音频功能异常的问题,提高了音频功能的稳定性。
本申请实施例中,通知中心设置有通知列表,音频子程序在配置音频会话过程中,向通知中心发送自身的注册信息,由通知中心将注册信息存储至通知列表中,后续(抢占的)音频子程序关闭时,通知中心即基于该通知列表实现恢复通知的发送,下面采用示例性的实施例对配置注册至音频功能恢复的流程进行说明。
请参考图3,其示出了本申请另一个实施例提供的音频功能恢复方法的流程图。该方法可以包括如下步骤:
步骤301,通过第一音频子程序配置音频会话,并通过音频会话调用音频硬件资源,音频硬件资源包括音频输入硬件资源和音频输出硬件资源中的至少一种。
本步骤的实施方式可以参考上述步骤201,本实施例在此不再赘述。
示意性的,如图4所示,第一音频子程序41完成初始化后,配置并启动AudioSession(音频会话)。
步骤302,通过第一音频子程序向通知中心发送第一注册通知,第一注册通知中包含第一注册信息,通知中心用于将第一注册信息添加至通知列表。
为了实现音频功能中断后的自动恢复,可选的,在配置音频会话的过程中,第一音频子程序根据第一注册信息生成第一注册通知,并将该第一注册通知发送至通知中心;对应的,通知中心接收到第一注册信息后,将该第一注册信息添加至通知列表中,以便后续进行通知时使用。
在一种可能的实施方式中,第一注册信息中包含第一音频子程序对应的子程序标识和回调接口,该子程序标识用于唯一标识第一音频子程序,该回调接口用于接收后续通知中心发送的恢复通知。
需要说明的是,第一音频子程序配置音频会话以及发送注册信息之间并不存在严格的先后时序,即第一音频子程序可以在配置音频会话的同时发送注册信息,或在配置音频会话之前发送注册信息,本实施例对此不作限定。
示意性的,如图4所示,第一音频子程序41在配置并启动音频会话后,向通知中心43发送第一注册通知,由通知中心43将第一注册信息添加至通知列表。
步骤303,响应于功能切换指令,通过第二音频子程序重新配置音频会话,并通过音频会话调用音频硬件资源,其中,第二音频子程序配置音频会话后,第一音频子程序的音频功能中断。
在一个示例性的例子中,如图5所示,第一音频子程序用于实现直播观看功能,当用户开启直播观看功能时,终端显示直播界面51。直播界面51中包含短视频按钮52,通过点击短视频按钮52,可以由直播界面51跳转至短视频界面53进行短视频观看。相应的,当接收到对短视频按钮52的点击操作时,确定接收到功能切换指令。
其中,第二音频子程序重配音频会话的过程可以参考上述步骤202,本实施例在此不再赘述。
步骤304,通过第二音频子程序向通知中心发送第二注册通知,第二注册通知中包含第二注册信息,通知中心用于将第二注册信息添加至通知列表。
与上述步骤302类似的,第二音频子程序在重配音频会话的同时,生成包含第二注册信息的第二注册通知,并将第二注册通知发送至通知中心,由通知中心将第二注册信息添加至通知列表。
可选的,第二注册信息中包含第二音频子程序对应的子程序标识和回调接口,该子程序标识用于唯一标识第二音频子程序,该回调接口用于接收后续通知中心发送的恢复通知。
示意性的,如图4所示,第二音频子程序42完成初始化后,配置并启动音频会话,并向通知中心43发送第二注册通知,通知中心43则将第二注册信息添加至通知列表中。由于音频会话的配置被重新设置,因此第一音频子程序41的音频功能中断。
步骤305,响应于第二音频子程序的关闭指令,从通知中心的通知列表中获取第一音频子程序的第一注册信息。
在一个示例性的例子中,如图5所示,用户通过短视频界面53观看短视频过程中,当接收到对返回控件54的点击操作时,确定接收到第二音频子程序的关闭指令,从而跳转显示上一级用户界面(即直播界面51)。
在一种可能的实施方式中,该关闭指令中包含第二音频子程序的子程序标识,通知中心即根据该子程序标识,将通知列表中该子程序标识对应音频子程序之外的音频子程序确定为需要恢复音频功能的音频子程序。本实施例中,由于通知列表中仅包含第一音频子程序和第二音频子程序对应的注册信息,因此,通知中心将第一音频子程序确定为恢复音频功能的音频子程序,进而获取其对应的第一注册信息。
步骤306,根据第一注册信息,通过通知中心向第一音频子程序发送恢复通知。
在一种可能的实施方式中,通知中心根据第一注册信息中包含的第一音频子程序的回调接口,向第一音频子程序发送恢复通知。
在一种可能的实施方式中,当接收到第二音频子程序的关闭指令时,还通过第二音频子程序将音频会话的状态设置为非激活状态(即关闭音频会话)。可选的,第二音频子程序对音频会话进行setActive:false操作,实现音频会话关闭。
示意性的,如图4所示,当接收到功能关闭指令时,第二音频子程序42关闭音频会话,并向通知中心43发送关闭通知。
步骤307,响应于第二音频子程序的关闭指令,通过通知中心从通知列表中删除第二注册信息。
由于第二音频子程序已经关闭,因此通知中心将第二注册信息从通知列表中移除,避免后续第一音频子程序关闭时,第二音频子程序又被错误恢复。
示意性的,如图4所示,通知中心43接收到关闭通知后,从通知列表中删除第二注册信息,此时通知列表中仅包含第一注册信息。
需要说明的是,通知中心发送恢复通知和删除第二注册信息之间并不存在严格的先后时序,即两者可以同步执行,也可以先后执行,本实施例对此不作限定。
步骤308,根据恢复通知,通过第一音频子程序重新配置音频会话,其中,重新配置音频会话后第一音频子程序的音频功能恢复。
本步骤的实施方式可以参考上述步骤204,本实施例在此不再赘述。
示意性的,如图4所示,第一音频子程序41接收到恢复通知后,配置并启动音频会话,从而恢复自身的音频功能。从用户层面来看,在图5所示的例子中,当用户点击返回控件54后,直播界面51重新显示,且直播音频同步恢复。
需要说明的是,当接收到对目标应用程序的关闭指令时(即目标应用程序的生命周期结束),为了避免目标应用程序重启后出现音频功能异常的问题,可选的,终端通过通知中心删除通知列表中包含的(所有)注册信息。比如,在运行第二音频子程序的过程中,若目标应用程序被关闭,通知列表中的第一注册信息和第二注册信息都被删除。
上述实施例中以第一音频子程序和第二音频子程序为例进行说明,然而,在实际应用过程中,目标应用程序中可能会存在三个甚至以上的音频子程序,当依次运行至少三个音频子程序后,关闭最近运行的音频子程序时,目标应用程序需要确定出其余音频子程序对应音频功能的恢复顺序。在图3的基础上,如图6所示,步骤304之后还包括如下步骤。
步骤309,响应于功能切换指令,通过第n音频子程序重新配置音频会话,并通过音频会话调用音频硬件资源,其中,第n音频子程序配置音频会话后,第n-1音频子程序的音频功能中断,n为大于等于3的整数。
与上述步骤303相似的,当在第n-1音频子程序运行过程中接收到功能切换指令(指示运行第n音频子程序)时,终端通过第n音频子程序重新配置音频会话,并通过音频会话调用音频硬件资源,从而实现第n音频子程序的音频功能,并中断第n-1音频子程序的音频功能。
在一个示意性的例子中,第二音频子程序的短视频界面中包含合拍控件,当接收到合拍控件的触发操作时,确定接收到功能切换指令,从而重配音频会话,其中重配后的音频会话调用的音频硬件资源包括麦克风(用于采集合拍过程中的音频)。
步骤310,通过第n音频子程序向通知中心发送第n注册通知,第n注册通知中包含第n音频子程序的第n注册信息,通知中心用于将第n注册信息添加至通知列表。
类似的,终端通过通知中心将第n音频子程序的第n注册信息添加至通知列表,其中,在添加第n注册信息前,通知列表中包含第1至第n-1音频子程序对应的n-1条注册信息。本实施例中,通知列表中除了包含注册信息外,还包含各条注册信息对应的注册顺序,后续恢复音频功能时,即基于该注册顺序。
示意性的,通知列表中包含的第一注册信息、第二注册信息和第三注册信息,对应的注册顺序分别为1、2、3。
步骤311,响应于第n音频子程序的关闭指令,根据注册顺序,通过通知中心向第n-1音频子程序发送恢复通知。
可选的,当第n音频子程序关闭时,通知中心根据通知列表中,除第n音频子程序以外其他音频子程序对应的注册顺序,确定出当前需要恢复音频功能的音频子程序。其中,通知中心将与第n音频子程序注册顺序相邻的音频子程序确定为需要恢复音频功能的音频子程序。本实施例中,通知中心即向第n-1音频子程序发送恢复通知。
步骤312,根据恢复通知,通过第n-1音频子程序重新配置音频会话,其中,重新配置音频会话后第n-1音频子程序的音频功能恢复。
进一步的,第n-1音频子程序根据恢复通知重配音频会话,从而恢复音频功能。
可选的,n为3时,当第二音频子程序关闭时,终端通过上述步骤305至308恢复第一音频子程序的音频功能。
本实施例中,通知中心根据音频子程序的注册顺序对注册信息进行存储,从而基于注册顺序在某一音频子程序关闭时,确定需要恢复音频功能的音频子程序,避免出现三个以上音频子程序先后运行并关闭时,出现音频功能异常的问题。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图7,其示出了本申请一个实施例提供的音频功能恢复装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的终端,也可以设置终端中。如图7所示,该装置700可以包括:
第一音频程序模块710,用于配置音频会话,并通过所述音频会话调用音频硬件资源;
第二音频程序模块720,用于响应于功能切换指令,重新配置所述音频会话,并通过所述音频会话调用所述音频硬件资源,其中,所述第第二音频程序模块配置所述音频会话后,所述第一音频程序模块的音频功能中断;
通知中心模块730,用于响应于所述第二音频程序模块的关闭指令,向所述第一音频程序模块发送恢复通知;
所述第一音频程序模块710,还用于根据所述恢复通知重新配置所述音频会话,其中,重新配置所述音频会话后所述第一音频程序模块的音频功能恢复。
可选的,通知中心模块730,还用于:
从通知列表中获取所述第一音频程序模块710的第一注册信息,所述通知列表中存储有所述第一注册信息和所述第二音频程序模块720的第二注册信息;
根据所述第一注册信息,向所述第一音频程序模块710发送所述恢复通知。
可选的,通知中心模块730还用于:
响应于所述第二音频程序模块720的关闭指令,从所述通知列表中删除所述第二注册信息。
可选的,第一音频程序模块710,还用于向所述通知中心模块730发送第一注册通知,所述第一注册通知中包含所述第一注册信息,所述通知中心模块730用于将所述第一注册信息添加至所述通知列表;
第二音频程序模块720,还用于向所述通知中心模块730发送第二注册通知,所述第二注册通知中包含所述第二注册信息,所述通知中心模块730用于将所述第二注册信息添加至所述通知列表。
可选的,所述通知列表中包含的各条注册信息对应的注册顺序;
所述装置还包括第三音频程序模块740,用于:
响应于功能切换指令,重新配置所述音频会话,并通过所述音频会话调用所述音频硬件资源,其中,所述第三音频程序模块740配置所述音频会话后,所述第二音频程序模块720的音频功能中断;
向所述通知中心模块730发送第n注册通知,所述第n注册通知中包含所述第n音频子程序的第n注册信息,所述通知中心模块730用于将所述第n注册信息添加至所述通知列表;
通知中心模块730,用于响应于所述第三音频程序模块740的关闭指令,根据所述注册顺序,向所述第二音频程序模块720发送所述恢复通知;
第二音频程序模块720,用于根据所述恢复通知,重新配置所述音频会话,其中,重新配置所述音频会话后所述第二音频程序模块720的音频功能恢复。
可选的,通知中心模块730,还用于:
响应于所述目标应用程序的关闭指令删除所述通知列表中包含的注册信息。
可选的,第二音频程序模块720,还用于:
响应于所述第二音频子程序的关闭指令,将所述音频会话的状态设置为非激活状态。
综上所述,本申请实施例中,对于包括至少两个音频子程序(在运行过程中需要使用音频硬件)的应用程序而言,在其中的第一音频子程序通过配置音频会话调用音频硬件资源以实现音频功能的情况下,若接收到功能切换指令,第二音频子程序则通过重新配置音频会话的方式调用音频硬件资源,在实现自身音频功能的情况下终端第一音频子程序的音频功能;而当第二音频子程序关闭时,应用程序中的通知中心则向第一音频子程序发送恢复通知,使得第一音频子程序能够根据该恢复通知,在第二音频子程序关闭时自动恢复音频功能,实现了音频功能的自动恢复,能够避免同一应用程序中不同子程序先后使用音频硬件时出现音频功能异常的问题,提高了音频功能的稳定性。
需要说明的是:上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图8,其示出了本申请一个示例性实施例提供的终端800的结构方框图。该终端800可以是智能手机、平板电脑、笔记本电脑等。本申请中的终端800可以包括一个或多个如下部件:处理器810、存储器820、显示屏830和音频组件840(音频硬件)。
处理器810可以包括一个或者多个处理核心。处理器810利用各种接口和线路连接整个终端800内的各个部分,通过运行或执行存储在存储器820内的指令、程序、代码集或指令集,以及调用存储在存储器820内的数据,执行终端800的各种功能和处理数据。可选地,处理器810可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器810可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏830所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器810中,单独通过一块芯片进行实现。
存储器820可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器820包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器820可用于存储指令、程序、代码、代码集或指令集。存储器820可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据终端800的使用所创建的数据(比如音频数据、电话本)等。
显示屏830是用于显示用户界面的显示组件。可选的,该显示屏830还具有触控功能,通过触控功能,用户可以使用手指、触摸笔等任何适合的物体在显示屏830上进行触控操作。
显示屏830通常设置在终端830的前面板。显示屏830可被设计成为全面屏、曲面屏、异型屏、双面屏或折叠屏。显示屏830还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本实施例对此不加以限定。
音频组件840是用于实现音频功能的硬件组件。其包括音频输入组件,比如麦克风,以及音频输出组件,比如扬声器、耳机。并且,音频组件840可以是固设在终端800中,也可以外接于终端800。比如,音频组件840可以是终端内置的扬声器和麦克风,或者,可以是通过有线或无线方式外接在终端之外的音箱、耳机或者话筒等等。
除此之外,本领域技术人员可以理解,上述附图所示出的终端800的结构并不构成对终端800的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端800中还包括摄像组件、麦克风、扬声器、射频电路、输入单元、传感器(比如加速度传感器、角速度传感器、光线传感器等等)、音频电路、无线保真(WirelessFidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序在被计算机设备的处理器执行时以实现上述音频功能恢复方法。
可选地,该计算机可读存储介质可以包括:ROM、RAM、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random AccessMemory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被计算机设备的处理器执行时,其用于实现上述音频功能恢复方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种音频功能恢复方法,其特征在于,应用于安装有目标应用程序的终端,所述目标应用程序中包括至少两个音频子程序和通知中心,所述音频子程序是在运行过程中使用所述终端的音频硬件的程序;
所述方法包括:
通过第一音频子程序配置音频会话,并通过所述音频会话调用音频硬件资源;
响应于功能切换指令,通过第二音频子程序重新配置所述音频会话,并通过所述音频会话调用所述音频硬件资源,其中,所述第二音频子程序配置所述音频会话后,所述第一音频子程序的音频功能中断;
响应于所述第二音频子程序的关闭指令,从通知中心的通知列表中获取所述第一音频子程序的第一注册信息,所述通知列表中存储有所述第一注册信息和所述第二音频子程序的第二注册信息;
根据所述第一注册信息,通过所述通知中心向所述第一音频子程序发送恢复通知;
根据所述恢复通知,通过所述第一音频子程序重新配置所述音频会话,其中,重新配置所述音频会话后所述第一音频子程序的音频功能恢复。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述第二音频子程序的关闭指令,通过所述通知中心从所述通知列表中删除所述第二注册信息。
3.根据权利要求1所述的方法,其特征在于,所述通过第一音频子程序配置音频会话之后,所述方法还包括:
通过所述第一音频子程序向所述通知中心发送第一注册通知,所述第一注册通知中包含所述第一注册信息,所述通知中心用于将所述第一注册信息添加至所述通知列表;
所述通过第二音频子程序重新配置所述音频会话之后,所述方法还包括:
通过所述第二音频子程序向所述通知中心发送第二注册通知,所述第二注册通知中包含所述第二注册信息,所述通知中心用于将所述第二注册信息添加至所述通知列表。
4.根据权利要求3所述的方法,其特征在于,所述通知列表中包含的各条注册信息对应的注册顺序;
所述响应于功能切换指令,通过第二音频子程序重新配置所述音频会话,并通过所述音频会话调用所述音频硬件资源之后,所述方法还包括:
响应于功能切换指令,通过第n音频子程序重新配置所述音频会话,并通过所述音频会话调用所述音频硬件资源,其中,所述第n音频子程序配置所述音频会话后,第n-1音频子程序的音频功能中断,n为大于等于3的整数;
通过所述第n音频子程序向所述通知中心发送第n注册通知,所述第n注册通知中包含所述第n音频子程序的第n注册信息,所述通知中心用于将所述第n注册信息添加至所述通知列表;
响应于所述第n音频子程序的关闭指令,根据所述注册顺序,通过所述通知中心向所述第n-1音频子程序发送所述恢复通知;
根据所述恢复通知,通过所述第n-1音频子程序重新配置所述音频会话,其中,重新配置所述音频会话后所述第n-1音频子程序的音频功能恢复。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述目标应用程序的关闭指令,通过所述通知中心删除所述通知列表中包含的注册信息。
6.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
响应于所述第二音频子程序的关闭指令,通过所述第二音频子程序将所述音频会话的状态设置为非激活状态。
7.一种音频功能恢复装置,其特征在于,所述装置包括:
第一音频程序模块,用于配置音频会话,并通过所述音频会话调用音频硬件资源;
第二音频程序模块,用于响应于功能切换指令,重新配置所述音频会话,并通过所述音频会话调用所述音频硬件资源,其中,所述第二音频程序模块配置所述音频会话后,所述第一音频程序模块的音频功能中断;
通知中心模块,用于响应于所述第二音频程序模块的关闭指令,从通知中心的通知列表中获取所述第一音频程序模块的第一注册信息,所述通知列表中存储有所述第一注册信息和所述第二音频程序模块的第二注册信息;
所述通知中心模块,还用于根据所述第一注册信息,通过所述通知中心向所述第一音频程序模块发送恢复通知;
所述第一音频程序模块,还用于根据所述恢复通知重新配置所述音频会话,其中,重新配置所述音频会话后所述第一音频程序模块的音频功能恢复。
8.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至6任一项所述的音频功能恢复方法。
9.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的音频功能恢复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010352399.5A CN111580776B (zh) | 2020-04-28 | 2020-04-28 | 音频功能恢复方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010352399.5A CN111580776B (zh) | 2020-04-28 | 2020-04-28 | 音频功能恢复方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580776A CN111580776A (zh) | 2020-08-25 |
CN111580776B true CN111580776B (zh) | 2023-07-21 |
Family
ID=72123553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010352399.5A Active CN111580776B (zh) | 2020-04-28 | 2020-04-28 | 音频功能恢复方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580776B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028005B (zh) * | 2022-05-16 | 2023-10-20 | 荣耀终端有限公司 | 音频会话获取方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509176A (zh) * | 2018-04-10 | 2018-09-07 | Oppo广东移动通信有限公司 | 一种播放音频数据的方法、装置、存储介质及智能终端 |
CN109525707A (zh) * | 2018-10-15 | 2019-03-26 | 维沃移动通信有限公司 | 一种音频播放方法及移动终端 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104519191B (zh) * | 2013-09-26 | 2018-05-08 | 腾讯科技(深圳)有限公司 | 录音方法、装置和电子设备 |
JP2016032155A (ja) * | 2014-07-28 | 2016-03-07 | ブラザー工業株式会社 | 遠隔会議システム、サーバ装置用のプログラム及び端末装置用のプログラム |
CN105162886B (zh) * | 2015-09-25 | 2019-04-12 | 北京奇艺世纪科技有限公司 | 一种声音控制方法及装置 |
CN106598669A (zh) * | 2016-12-13 | 2017-04-26 | 珠海市魅族科技有限公司 | 一种用于终端的应用程序的权限配置修复方法和终端 |
CN108650521A (zh) * | 2018-05-17 | 2018-10-12 | 上海七牛信息技术有限公司 | 一种直播方法、装置以及多媒体播放系统 |
CN109240833A (zh) * | 2018-09-26 | 2019-01-18 | Oppo广东移动通信有限公司 | 资源配置方法、装置、终端及存储介质 |
-
2020
- 2020-04-28 CN CN202010352399.5A patent/CN111580776B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509176A (zh) * | 2018-04-10 | 2018-09-07 | Oppo广东移动通信有限公司 | 一种播放音频数据的方法、装置、存储介质及智能终端 |
CN109525707A (zh) * | 2018-10-15 | 2019-03-26 | 维沃移动通信有限公司 | 一种音频播放方法及移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN111580776A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6985339B2 (ja) | シーンベースの振動フィードバック方法および携帯端末 | |
JP6671394B2 (ja) | サードパーティアプリケーションに対するデジタルアシスタント拡張性 | |
US11934848B2 (en) | Control display method and electronic device | |
US10528434B2 (en) | Method, device and terminal for restoring firmware program | |
CN109062479B (zh) | 分屏应用切换方法、装置、存储介质和电子设备 | |
WO2021115194A1 (zh) | 一种应用图标的显示方法及电子设备 | |
CN113325996B (zh) | 分屏显示方法和装置 | |
CN108182131B (zh) | 监控应用运行状态的方法、装置、存储介质及电子设备 | |
EP2945058A1 (en) | Processing method and device for application program | |
US11507244B2 (en) | Window adjustment method, window adjustment device and mobile terminal | |
CN109684011B (zh) | 界面显示控制方法、电子装置及计算机可读存储介质 | |
CN111708471B (zh) | 一种控件处理方法和相关装置 | |
CN110008027B (zh) | 进程的运行方法、装置、终端及存储介质 | |
CN110187815A (zh) | 终端及处理方法 | |
CN111580776B (zh) | 音频功能恢复方法、装置、终端及存储介质 | |
CN109348062B (zh) | 紧急呼叫实现方法、电子装置及计算机可读存储介质 | |
CN109271156B (zh) | 游戏平台的底层调用方法及相关产品 | |
JP2024515440A (ja) | アプリケーションインターフェースの表示方法、装置、デバイス、及び記憶媒体 | |
CN110851106B (zh) | 一种音频输出方法及电子设备 | |
CN112114965A (zh) | 应用程序的运行方法、装置、终端及存储介质 | |
CN108920086B (zh) | 分屏退出方法、装置、存储介质和电子设备 | |
CN113595662B (zh) | 信号提示方法、装置、终端设备及存储介质 | |
WO2022257583A1 (zh) | 应用部署方法、分布式操作系统、电子设备及存储介质 | |
CN109782960B (zh) | 触摸屏报点区域切换方法、电子装置及计算机可读存储介质 | |
CN107391128B (zh) | 监控虚拟文件对象模型vdom的方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231012 Address after: 31a, 15 / F, building 30, maple mall, bangrang Road, Brazil, Singapore Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd. Address before: 511402 5-13 / F, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou City, Guangdong Province Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd. |