本发明涉及音频控制技术领域,特别是涉及播放音频中音频设备插拔检测方法与系统。
背景技术:
随着生活水平的提高,越来越多的音频播放设备与技术应用到实际生产生活中给人们带来了巨大的便捷,例如目前流行的语音会议、远程语音聊天以及大型广播会议。
目前,使用播放器播放音视频的时候,突然有音频设备的拔出或插入时,会导致软件的声音输出不正常。如果没有有效的检测方法,当有音频设备拔出时,音频播放控制系统无法感知已有音频设备拔出,音频播放控制系统可能还会向原与该音频设备连接端口输出控制指令或音频数据,这样有可能导致无有效音频播放。例如语音会议中拔出正在播放的音频设备,当控制系统无法准确检测到这一情况时会到导致突然没有声音,这样给用户操作带来需要不必要的麻烦。
可见,提供一种便捷且有效的播放音频中音频设备插拔检测方法是非常有必要的。
技术实现要素:
基于此,有必要针对目前尚无一种便捷且有效的播放音频中音频设备插拔检测方法问题,提供一种便捷且有效的播放音频中音频设备插拔检测方法与系统。
一种播放音频中音频设备插拔检测方法,包括步骤:
初始化音频驱动;
记录初始已接入音频设备数量;
播放已缓存的音频数据,并检测当前接入的音频设备数量;
当初始已接入音频设备数量等于当前接入的音频设备数量时,返回检测当前接入的音频设备数量的步骤;
当初始已接入音频设备数量不等于当前接入的音频设备数量时,返回初始化音频驱动的步骤。
一种播放音频中音频设备插拔检测系统,包括:
驱动初始模块,用于初始化音频驱动;
初始记录模块,用于记录初始已接入音频设备数量;
检测模块,用于播放已缓存的音频数据,并检测当前接入的音频设备数量;
第一处理模块,用于当初始已接入音频设备数量等于当前接入的音频设备数量时,控制检测模块执行检测当前接入的音频设备数量的操作;
第二处理模块,用于当初始已接入音频设备数量不等于当前接入的音频设备数量时,控制驱动初始模块执行初始化音频驱动的操作。
本发明播放音频中音频设备插拔检测方法与系统,初始化音频驱动,记录初始已接入音频设备数量,播放已缓存的音频数据,并检测当前接入的音频设备数量,当初始已接入音频设备数量等于当前接入的音频设备数量时,返回检测当前接入的音频设备数量的步骤,当不等于时,返回初始化音频驱动的步骤。整个过程中,根据已接入音频设备数量变化情况,在播放音频中准确、便捷且有效检测是否音频设备插拔。
附图说明
图1为本发明播放音频中音频设备插拔检测方法第一个实施例的流程示意图;
图2为本发明播放音频中音频设备插拔检测方法第二个实施例的流程示意图;
图3为本发明播放音频中音频设备插拔检测系统第一个实施例的结构示意图;
图4为本发明播放音频中音频设备插拔检测系统第二个实施例的结构示意图。
具体实施方式
如图1所示,一种播放音频中音频设备插拔检测方法,包括步骤:
S100:初始化音频驱动。
对音频驱动进行初始化,以清除缓存区、重置音频声效以及加载预设配置参数等。对音频驱动初始化一方面清除历史残留数据,避免历史残留数据影响本次音频数据的正常播放;另一方面加载预设的配置参数为本次音频播放做好准备。
S200:记录初始已接入音频设备数量。
记录下初始时刻已接入音频设备数量。在这里已接入是指已经接入音频播放系统的音频设备。以广播会议为例,假设在一个空间内有8个音频设备(扬声器),8个音频设备中有6个是与整个音频播放系统连接,且能够正常工作的音频播放设备,即此时初始已接入音频设备数量为6个。
S300:播放已缓存的音频数据,并检测当前接入的音频设备数量。
检测是否缓存有音频数据,当缓存有音频数据时,播放已缓存的音频数据,并检测当前接入的音频设备数量。非必要的,可以针对不同的音频设备设置不同的缓存区,检测是否缓存有音频数据时,基于音频设备特征查找其对应缓存区内是否有音频数据,当其缓存区有音频数据时,通过该音频设备播放该已缓存的音频数据,当其缓存区无缓存音频数据时,该音频设备不播放声音。在这里,可以采用间隔预设时间(可以每次间隔时间不一样)或者采用预设周期方式检测当前接入的音频设备数量,例如可以每30秒检测一次当前接入的音频设备数量。
S400:当初始已接入音频设备数量等于当前接入的音频设备数量时,返回检测当前接入的音频设备数量的步骤。
当初始已接入音频设备数量等于当前接入的音频设备数量时,表明已接入音频设备数量没有变化,直接返回步骤S300。下面以应用实例展开说明,初始时刻为9点过5分30秒,记录下此时已接入音频设备数量为8个,之后播放已缓存的音频数据——歌曲《歌唱祖国》,间隔30秒后(即9点过6分)检测当时刻已接入音频设备数量依旧为8个,返回检测当前接入的音频设备数量,等待下一次检测时刻到来再进行类似处理。
S500:当初始已接入音频设备数量不等于当前接入的音频设备数量时,返回初始化音频驱动的步骤。
当初始已接入音频设备数量不等于当前接入的音频设备数量时,表明已接入音频设备数量发生改变,此时返回步骤S100。下面将继续以应用实例展开说明,初始时刻为9点过5分30秒,记录下此时已接入音频设备数量为8个,之后播放已缓存的音频数据——歌曲《歌唱祖国》,若间隔30秒后(即9点过6分)检测当时刻已接入音频设备数量为9个,即已接入音频设备有增加,此时需返回步骤S100重新初始化音频驱动;若间隔30秒后(即9点过6分)检测当时刻已接入音频设备数量为7个,即已接入音频设备有减少,此时同样需返回步骤S100重新初始化音频驱动。
本发明播放音频中音频设备插拔检测方法,初始化音频驱动,记录初始已接入音频设备数量,播放已缓存的音频数据,并检测当前接入的音频设备数量,当初始已接入音频设备数量等于当前接入的音频设备数量时,返回检测当前接入的音频设备数量的步骤,当不等于时,返回初始化音频驱动的步骤。整个过程中,根据已接入音频设备数量变化情况,在播放音频中准确、便捷且有效检测是否音频设备插拔。
在其中一个实施例中,当初始已接入音频设备数量不等于当前接入的音频设备数量时,返回初始化音频驱动的步骤包括:
步骤一:当初始已接入音频设备数量大于当前接入的音频设备数量时,返回初始化音频驱动的步骤。
步骤二:当初始已接入音频设备数量小于当前接入的音频设备数量时,检测新接入的音频设备是否被授权启用。
步骤三:当被授权启用时,返回初始化音频驱动的步骤。
初始已接入音频设备数量不等于当前接入的音频设备数量有两种情况:第一种情况,初始已接入音频设备数量大于当前已接入音频设备(已接入音频设备数量减少);第二种情况,初始已接入音频设备数量小于当前接入的音频设备数量(已接入音频设备增加)。在某一具体应用实例中,对于已接入音频设备增加时还需考虑已接入的音频设备是否为被授权启用的设备,当其为授权启用的设备时,才能在后续操作中使用,当其为未授权启用的设备(即为“非法”设备)时,则无需考虑其存在。
下面将继续以应用实例详细说明上述实施例,假设在一个空间内有8个音频设备(扬声器),初始时刻8个音频设备中有6个是与整个音频播放系统连接,即初始已接入音频设备数量为6,6个音频设备播放缓存的音频数据,30秒后检测当前时刻已就接入音频设备量,当当前接入的音频设备数量为5个时,重新初始化音频驱动;当当前接入的音频设备数量为8个时,检测新接入的2个音频设备是否被授权启用,当新接入的2个音频设备被授权启用时,重新初始化音频驱动,当新接入的2个音频设备未被授权启用时,无需考虑该2个已接入的音频设备,返回检测当前接入的音频设备数量的操作。
在其中一个实施例中,播放已缓存的音频数据的步骤包括:
当与初始已接入音频设备对应的预设缓存区缓存有音频数据时,播放已缓存的音频数据。
不同的音频设备可能具备不同的特性,例如播放音频频率不相同、播放声音大小门限值不相同(输出功率)以及音频播放方式不相同等。针对不同的音频设备可以预先划设不同的缓存区,将音频设备与缓存区的对应关系存储起来,当与初始已接入音频设备对应的预设缓存区缓存有音频数据时,播放已缓存的音频数据。
如图2所示,在其中一个实施例中,步骤S200之后还包括:
S220:识别初始已接入音频设备,获取已接入音频设备特征,特征包括工作频率范围、输出功率和/或音频播放方式。
S240:根据已接入音频设备特征,对初始已接入音频设备划设不同的音频数据缓存区。
不同的音频设备可能具备不同的特性,例如播放音频频率不相同、播放声音大小门限值不相同(输出功率)以及音频播放方式不相同等。针对不同的音频设备可以预先划设不同的缓存区。例如当前初始已接入音频设备有3个,分别为音频设备A工作频率为X、输出功率为a、音频播放方式为普通扬声器发声;音频设备B工作频率为Y,输出功率为b、音频播放方式为机械模拟振动发声;音频设备C工作频率为Z,输出功率为c、音频播放方式为普通扬声器发声,在整个音频播放系统中音频播放数据缓存区划分为缓存一区、缓存二区以及缓存三区,预先划设缓存一区为音频设备A专属音频数据缓存区,划设缓存二区为音频设备B专属音频数据缓存区,划设缓存三区为音频设备C专属音频数据缓存区,当缓存一区内有已缓存的音频数据时,音频设备A基于该音频数据播放声音;当缓存二区内有已缓存的音频数据时,音频设备B基于该音频数据播放声音;当缓存三区内有已缓存的音频数据时,音频设备C基于该音频数据播放声音。在本实施例中,根据音频设备特征,对初始已接入音频设备划设不同的音频数据缓存区,实现对缓存的音频数据良好管理。
如图2所示,在其中一个实施例中,步骤S100之后还包括:
S120:调用音频驱动接口,接收外部输入的音频数据。
调用音频驱动接口,在此接口中接收外部数据,保存原始音频数据,使整个音频播放系统能播放。
如图3所示,一种播放音频中音频设备插拔检测系统,包括:
驱动初始模块100,用于初始化音频驱动。
初始记录模块200,用于记录初始已接入音频设备数量。
检测模块300,用于播放已缓存的音频数据,并检测当前接入的音频设备数量。
第一处理模块400,用于当初始已接入音频设备数量等于当前接入的音频设备数量时,控制检测模块300执行检测当前接入的音频设备数量的操作。
第二处理模块500,用于当初始已接入音频设备数量不等于当前接入的音频设备数量时,控制驱动初始模块100执行初始化音频驱动的操作。
本发明播放音频中音频设备插拔检测系统,驱动初始模块100初始化音频驱动,初始记录模块200记录初始已接入音频设备数量,检测模块300播放已缓存的音频数据,并检测当前接入的音频设备数量,当初始已接入音频设备数量等于当前接入的音频设备数量时,第一处理模块400控制返回检测当前接入的音频设备数量的步骤,当不等于时,第二处理模块500控制驱动初始模块100执行初始化音频驱动的操作。整个过程中,根据已接入音频设备数量变化情况,在播放音频中准确、便捷且有效检测是否音频设备插拔。
在其中一个实施例中,第二处理模块500包括:
第一处理单元,用于当初始已接入音频设备数量大于当前接入的音频设备数量时,控制驱动初始模块100执行初始化音频驱动的操作。
第二处理单元,用于当初始已接入音频设备数量小于当前接入的音频设备数量时,检测新接入的音频设备是否被授权启用。
第三处理单元,用于当被授权启用时,控制驱动初始模块100执行初始化音频驱动的操作。
在其中一个实施例中,检测模块300当与初始已接入音频设备对应的预设缓存区缓存有音频数据时,播放已缓存的音频数据。
如图4所示,在其中一个实施例中,播放音频中音频设备插拔检测系统还包括:
设备特征识别模块220,用于识别初始已接入音频设备,获取已接入音频设备特征,特征包括工作频率范围、输出功率和/或音频播放方式。
缓存区划设模块240,用于根据已接入音频设备特征,对初始已接入音频设备划设不同的音频数据缓存区。
如图4所示,在其中一个实施例中,播放音频中音频设备插拔检测系统还包括:
音频数据接收模块120,用于调用音频驱动接口,接收外部输入的音频数据。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。