一种音频播放方法及终端设备转让专利

申请号 : CN202111502407.0

文献号 : CN113950037B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 崔晓青

申请人 : 荣耀终端有限公司

摘要 :

本申请提供了一种音频播放方法及终端设备。其中,方法应用于终端设备,包括:获取目标应用当前使用的第一蓝牙音频通道的类型以及所述终端设备的操作系统为蓝牙设备使能的第二蓝牙音频通道的类型;若识别出所述第一蓝牙音频通道的类型和所述第二蓝牙音频通道的类型不匹配,则将所述目标应用当前使用的第一蓝牙音频通道切换至所述第二蓝牙音频通道;控制所述目标应用通过所述第二蓝牙音频通道将音频数据发送至所述蓝牙设备进行播放。可以保证应用能够成功通过蓝牙设备进行播放,满足了用户在使用过程中无需任何手动选择配置即可实现蓝牙播放的期望,从而提高用户使用蓝牙设备时的体验。

权利要求 :

1.一种音频播放方法,其特征在于,应用于终端设备,所述方法包括:获取目标应用当前使用的第一蓝牙音频通道的类型以及所述终端设备为蓝牙设备使能的第二蓝牙音频通道的类型;

若识别出所述第一蓝牙音频通道的类型和所述第二蓝牙音频通道的类型不匹配,则通过音频管理器将所述目标应用当前使用的第一蓝牙音频通道自动切换至所述第二蓝牙音频通道;

控制所述目标应用通过所述第二蓝牙音频通道将音频数据发送至所述蓝牙设备进行播放。

2.根据权利要求1所述的方法,其特征在于,所述获取所述终端设备为所述蓝牙设备使能的第二蓝牙音频通道的类型,包括:重复获取所述终端设备为所述蓝牙设备使能的第二蓝牙音频通道的类型,直至所述终端设备识别出到达预设时长阈值;

所述若识别出所述第一蓝牙音频通道的类型与所述第二蓝牙音频通道的类型不匹配,则通过音频管理器将所述目标应用当前使用的第一蓝牙音频通道自动切换至所述第二蓝牙音频通道,包括:

若识别出到达所述预设时长阈值且所述第一蓝牙音频通道的类型与最新获取的第二蓝牙音频通道的类型不匹配,则通过音频管理器将所述目标应用当前使用的第一蓝牙音频通道自动切换至所述第二蓝牙音频通道。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:当获取所述第二蓝牙音频通道的类型,若所述终端设备识别出所述第一蓝牙音频通道的类型与最新获取的第二蓝牙音频通道的类型匹配,则终止重复确定所述终端设备为所述蓝牙设备使能的第二蓝牙音频通道。

4.根据权利要求2所述的方法,其特征在于,所述方法还包括:禁止所述目标应用输出音频数据,直至所述终端设备执行所述控制所述目标应用通过所述第二蓝牙音频通道将音频数据发送至所述蓝牙设备进行播放的步骤。

5.根据权利要求2所述的方法,其特征在于,所述方法还包括:若识别出所述第一蓝牙音频通道的类型与第一次获取到的第二蓝牙音频通道的类型不匹配,则将目标应用输出音频数据切换至第三音频通道,其中,所述第三音频通道为非蓝牙音频通道。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:若识别出所述第一蓝牙音频通道不为优先级最高的蓝牙音频通道,则将所述目标应用当前使用的第一蓝牙音频通道切换至优先级最高的蓝牙音频通道。

7.一种终端设备,其特征在于,所述终端设备包括:获取模块,用于获取目标应用当前使用的第一蓝牙音频通道的类型以及所述终端设备为蓝牙设备使能的第二蓝牙音频通道的类型;

判断模块,用于识别所述第一蓝牙音频通道的类型和所述第二蓝牙音频通道的类型是否匹配;

切换模块,用于若不匹配,则通过音频管理器将所述目标应用当前使用的第一蓝牙音频通道自动切换至所述第二蓝牙音频通道;并控制所述目标应用通过所述第二蓝牙音频通道将音频数据发送至所述蓝牙设备进行播放。

8.根据权利要求7所述的终端设备,其特征在于,所述获取模块获取所述终端设备为所述蓝牙设备使能的第二蓝牙音频通道的类型,包括:重复获取所述终端设备为所述蓝牙设备使能的第二蓝牙音频通道的类型,直至所述终端设备识别出到达预设时长阈值;

所述判断模块识别所述第一蓝牙音频通道的类型和所述第二蓝牙音频通道的类型是否匹配,包括:

识别所述第一蓝牙音频通道的类型和最新获取的第二蓝牙音频通道的类型是否匹配。

9.根据权利要求8所述的终端设备,所述获取模块,还用于当获取所述第二蓝牙音频通道的类型,若所述终端设备识别出所述第一蓝牙音频通道的类型与最新获取的第二蓝牙音频通道的类型匹配,则终止重复确定所述终端设备为所述蓝牙设备使能的第二蓝牙音频通道。

10.根据权利要求8所述的终端设备,其特征在于,所述切换模块,还用于禁止所述目标应用输出音频数据,直至所述切换模块执行所述控制所述目标应用通过所述第二蓝牙音频通道将音频数据发送至所述蓝牙设备进行播放的步骤。

11.根据权利要求8所述的终端设备,其特征在于,所述切换模块,还用于若识别出所述第一蓝牙音频通道的类型与第一次获取到的第二蓝牙音频通道的类型不匹配,则将目标应用输出音频数据切换至第三音频通道,其中,所述第三音频通道为非蓝牙音频通道。

12.根据权利要求7所述的终端设备,其特征在于,所述终端设备还包括排序模块,用于若识别出所述第一蓝牙音频通道不为优先级最高的蓝牙音频通道,则驱动所述切换模块将所述目标应用当前使用的第一蓝牙音频通道切换至优先级最高的蓝牙音频通道。

13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1‑6任一所述的方法步骤。

说明书 :

一种音频播放方法及终端设备

技术领域

[0001] 本发明涉及多媒体技术领域,特别是涉及一种音频播放方法及终端设备。

背景技术

[0002] 在一些应用场景中,用户希望由连接于终端设备的蓝牙设备,如蓝牙耳机、车载蓝牙音响等,播放终端设备中应用的音频。相关技术中,终端设备中运行的应用可以通过预先
设置的蓝牙音频通道将数据输出至蓝牙设备进行播放。
[0003] 但是,如果预先设置的蓝牙音频通道未被终端设备的操作系统使能,则将导致应用无法成功地将音频数据发送至蓝牙设备,进而导致应用无法通过蓝牙设备进行音频播
放,即用户无法通过蓝牙设备播放来自该应用的音频,给蓝牙设备的使用带来不便。

发明内容

[0004] 本发明实施例提供一种音频播放方法及终端设备,以保证应用能够成功通过蓝牙设备进行播放。具体技术方案如下:
[0005] 第一方面,本申请提供了一种音频播放方法,应用于终端设备,所述方法包括:
[0006] 获取目标应用当前使用的第一蓝牙音频通道的类型以及所述终端设备为蓝牙设备使能的第二蓝牙音频通道的类型;
[0007] 若识别出所述第一蓝牙音频通道的类型和所述第二蓝牙音频通道的类型不匹配,则将所述目标应用当前使用的第一蓝牙音频通道切换至所述第二蓝牙音频通道;
[0008] 控制所述目标应用通过所述第二蓝牙音频通道将音频数据发送至所述蓝牙设备进行播放。
[0009] 本申请提供的音频播放方法中,终端设备可以通过第一蓝牙音频通道的类型和第二蓝牙音频通道的类型是否匹配,确定终端设备内对该外接蓝牙设备的第一蓝牙音频通道
是否被操作系统使能,进而在第一蓝牙音频通道未被使能的情况下,及时切换目标应用所
使用的第一蓝牙音频通道,以使得目标应用通过已使能的第二蓝牙音频通道输出音频数
据。从而有效避免了因蓝牙音频通道不匹配导致的蓝牙设备无法播放来自目标应用的音频
数据的问题,保证了应用能够成功通过蓝牙设备进行播放。满足了用户在使用过程中无需
任何手动选择配置即可实现蓝牙播放的期望。本申请由于是终端自动识别第一蓝牙音频通
道的类型和第二蓝牙音频通道的类型是否匹配,且在不匹配情况下自动切换目标应用的蓝
牙音频通道类型,切换快捷,使得用户无感知,用户体验性好。
[0010] 结合第一方面,在一种可能的实施例中,所述获取所述终端设备为所述蓝牙设备使能的第二蓝牙音频通道的类型,包括:
[0011] 重复获取所述终端设备为所述蓝牙设备使能的第二蓝牙音频通道的类型,直至所述终端设备识别出到达预设时长阈值;
[0012] 所述若识别出所述第一蓝牙音频通道的类型与所述第二蓝牙音频通道的类型不匹配,则将所述目标应用当前使用的第一蓝牙音频通道切换至所述第二蓝牙音频通道,包
括:
[0013] 若识别出到达所述预设时长阈值且所述第一蓝牙音频通道的类型与最新获取的第二蓝牙音频通道的类型不匹配,则将所述目标应用当前使用的第一蓝牙音频通道切换至
所述第二蓝牙音频通道。
[0014] 结合第一方面,在一种可能的实施例中,所述方法还包括:
[0015] 当获取所述第二蓝牙音频通道的类型,若所述终端设备识别出所述第一蓝牙音频通道的类型与最新获取的第二蓝牙音频通道的类型匹配,则终止重复确定所述终端设备为
所述蓝牙设备使能的第二蓝牙音频通道。
[0016] 结合第一方面,在一种可能的实施例中,所述方法还包括:
[0017] 禁止所述目标应用输出音频数据,直至所述终端设备执行所述控制所述目标应用通过所述第二蓝牙音频通道将音频数据发送至所述蓝牙设备进行播放的步骤。
[0018] 结合第一方面,在一种可能的实施例中,所述方法还包括:
[0019] 若识别出所述第一蓝牙音频通道的类型与第一次获取到的第二蓝牙音频通道的类型不匹配,则将目标应用输出音频数据切换至第三音频通道,其中,所述第三音频通道为
非蓝牙音频通道。
[0020] 结合第一方面,在一种可能的实施例中,所述方法还包括:
[0021] 若识别出所述第一蓝牙音频通道不为优先级最高的蓝牙音频通道,则将所述目标应用当前使用的第一蓝牙音频通道切换至优先级最高的蓝牙音频通道。
[0022] 第二方面,本申请提供了一种终端设备,所述终端设备包括:
[0023] 获取模块,用于获取目标应用当前使用的第一蓝牙音频通道的类型以及所述终端设备为蓝牙设备使能的第二蓝牙音频通道的类型;
[0024] 判断模块,用于识别所述第一蓝牙音频通道的类型和所述第二蓝牙音频通道的类型是否匹配;
[0025] 切换模块,用于若不匹配,则将所述目标应用当前使用的第一蓝牙音频通道切换至所述第二蓝牙音频通道;并控制所述目标应用通过所述第二蓝牙音频通道将音频数据发
送至所述蓝牙设备进行播放。
[0026] 结合第二方面,在一种可能的实施例中,所述获取模块获取所述终端设备为所述蓝牙设备使能的第二蓝牙音频通道的类型,包括:
[0027] 重复获取所述终端设备为所述蓝牙设备使能的第二蓝牙音频通道的类型,直至所述终端设备识别出到达预设时长阈值;
[0028] 所述判断模块识别所述第一蓝牙音频通道的类型和所述第二蓝牙音频通道的类型是否匹配,包括:
[0029] 识别所述第一蓝牙音频通道的类型和最新获取的第二蓝牙音频通道的类型是否匹配。
[0030] 结合第二方面,在一种可能的实施例中,所述获取模块,还用于当获取所述第二蓝牙音频通道的类型,若所述终端设备识别出所述第一蓝牙音频通道的类型与最新获取的第
二蓝牙音频通道的类型匹配,则终止重复确定所述终端设备为所述蓝牙设备使能的第二蓝
牙音频通道。
[0031] 结合第二方面,在一种可能的实施例中,所述切换模块,还用于禁止所述目标应用输出音频数据,直至所述切换模块执行所述控制所述目标应用通过所述第二蓝牙音频通道
将音频数据发送至所述蓝牙设备进行播放的步骤。
[0032] 结合第二方面,在一种可能的实施例中,所述切换模块,还用于若识别出所述第一蓝牙音频通道的类型与第一次获取到的第二蓝牙音频通道的类型不匹配,则将目标应用输
出音频数据切换至第三音频通道,其中,所述第三音频通道为非蓝牙音频通道。
[0033] 结合第二方面,在一种可能的实施例中,所述终端设备还包括排序模块,用于若识别出所述第一蓝牙音频通道不为优先级最高的蓝牙音频通道,则驱动所述切换模块将所述
目标应用当前使用的第一蓝牙音频通道切换至优先级最高的蓝牙音频通道。第三方面,本
申请提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所
述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。

附图说明

[0034] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施
例。
[0035] 图1为本申请提供的终端设备的一种硬件结构示意图;
[0036] 图2为本申请提供的音频播放方法的一种流程示意图;
[0037] 图3为本申请提供的音频播放方法的另一种流程示意图;
[0038] 图4为本申请提供的终端设备软硬件框架示意图;
[0039] 图5a为本申请提供的应用于场景一的音频播放方法的流程示意图;
[0040] 图5b为场景一的场景示意图;
[0041] 图5c为本申请提供的应用于场景一的音频播放方法的交互示意图;
[0042] 图6a为本申请提供的应用于场景二的音频播放方法的流程示意图;
[0043] 图6b为场景二的场景示意图;
[0044] 图6c为本申请提供的应用于场景二的音频播放方法的交互示意图;
[0045] 图7a为本申请提供的应用于场景三的音频播放方法的流程示意图;
[0046] 图7b为场景三的场景示意图;
[0047] 图7c为本申请提供的应用于场景三的音频播放方法的交互示意图;
[0048] 图8为本申请提供的终端设备的一种功能模块结构示意图。

具体实施方式

[0049] 为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一指令和
第二指令是为了区分不同的用户指令,并不对其先后顺序进行限定。本领域技术人员可以
理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也
并不限定一定不同。
[0050] 需要说明的是,本申请中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其
他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在
以具体方式呈现相关概念。
[0051] 此外,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。
[0052] 下面将结合附图对本申请实施例的实施方式进行详细描述。
[0053] 为了更清楚地对本申请实施例提供的音频播放方法进行说明,下面将对本申请实施例提供的音频播放方法的一种可能的应用场景进行示例性的说明。可以理解的是,以下
示例仅是本申请实施例提供的音频播放方法的一种可能的应用场景,在其他可能的实施例
中,本申请实施例提供的音频播放方法也可以应用于其他可能的应用场景中,以下示例对
此不做任何限制。
[0054] 参见图1,图1所示为本申请实施例提供的终端设备的硬件结构示意图。
[0055] 终端设备包括处理器110、收发器120和显示单元170。其中,显示单元170可以包括显示屏。
[0056] 可选地,该终端设备还可以包括存储器130。处理器110、收发器120和存储器130之间可以通过内部连接通路互相通信,传递控制和/或数据信号,该存储器130用于存储计算
机程序,该处理器110用于从该存储器130中调用并运行该计算机程序。
[0057] 可选地,终端设备还可以包括天线140,用于将收发器120输出的无线信号发送出去。
[0058] 上述处理器110可以和存储器130合成一个处理装置,更常见的是彼此独立的部件,处理器110用于执行存储器130中存储的程序代码来实现上述功能。具体实现时,该存储
器130也可以集成在处理器110中,或者,独立于处理器110。
[0059] 除此之外,为了使得终端设备的功能更加完善,该终端设备还可以包括输入单元160、音频电路180、摄像头190和传感器101等中的一个或多个,该音频电路还可以包括扬声
器182、麦克风184等。
[0060] 可选地,上述终端设备还可以包括电源150,用于给终端设备中的各种器件或电路提供电源。
[0061] 可以理解的是,图1所示的终端设备中的各个模块的操作和/或功能,分别为了实现下述方法实施例中的相应流程。具体可参见下述方法实施例中的描述,为避免重复,此处
适当省略详细描述。
[0062] 可以理解的是,图1所示的终端设备中的处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,
图形处理器(graphics processing unit ,GPU),图像信号处理器(imagesigna 
lprocessor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,
DSP),基带处理器,和/或神经网络处理器(neural‑network processing unit,NPU)等。其
中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器110中
还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速
缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器
110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处
理器110的等待时间,因而提高了系统的效率。
[0063] 在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter‑integrated circuit,I2C)接口,集成电路内置音频(inter‑integrated circuit 
sound,I2S)接口,脉冲编码调制(pulsecode modulation,PCM)接口,通用异步收发传输器
(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口
(mobile industry processor interface,MIPI),通用输入输出(general‑purpose 
input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或
通用串行总线(universal serial bus,USB)接口等。
[0064] I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含
多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,
闪光灯,摄像头190等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器
110与触摸传感器180K通过I2C总线接口通信,实现终端设备的触摸功能。
[0065] I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频电路180耦合,实现处理器110与音频电路180之间的通
信。在一些实施例中,音频电路180可以通过I2S接口向收发器120传递音频信号,实现通过
蓝牙耳机接听语音通话的功能。
[0066] PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频电路180与收发器120可以通过PCM总线接口耦合。在一些实施例中,音频电路180也可以
通过PCM接口向收发器120传递音频信号,实现通过蓝牙耳机接听语音通话的功能。所述I2S
接口和所述PCM接口都可以用于音频通信。
[0067] UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用
于连接处理器110与收发器120。例如:处理器110通过UART接口与收发器120中的蓝牙模块
通信,实现蓝牙功能。在一些实施例中,音频电路180可以通过UART接口向收发器120传递音
频信号,实现通过蓝牙耳机播放音乐的功能。
[0068] MIPI接口可以被用于连接处理器110与显示单元170,摄像头190等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(display 
serial interface,DSI)等。在一些实施例中,处理器110和摄像头190通过CSI接口通信,实
现终端设备的拍摄功能。处理器110和显示单元170通过DSI接口通信,实现终端设备的显示
功能。
[0069] GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头190,显示单元170,收
发器120,音频模电路180,传感器101等。GPIO接口还可以被配置为I2C接口,I2S接口,UART
接口,MIPI接口等。
[0070] 可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备的结构限定。在本申请另一些实施例中,终端设备也可以采用上述实
施例中不同的接口连接方式,或多种接口连接方式的组合。
[0071] 可以理解的是,图1所示的电源150用于给处理器110,存储器130,显示单元170,摄像头190,输入单元160和收发器120等供电。天线140用于发射和接收电磁波信号。终端设备
中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利
用率。例如:可以将天线140复用为无线局域网的分集天线。在另外一些实施例中,天线可以
和调谐开关结合使用。
[0072] 收发器120可以提供应用在终端设备上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi‑Fi)网络),蓝牙(bluetooth,BT),全
球导航卫星系统(global navigation satellite system,GNSS),调频(frequency 
modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术
(infrared,IR)等无线通信的解决方案。收发器120可以是集成至少一个通信处理模块的一
个或多个器件。收发器120经由天线140接收电磁波,将电磁波信号调频以及滤波处理,将处
理后的信号发送到处理器110。收发器120还可以从处理器110接收待发送的信号,对其进行
调频,放大,经天线140转为电磁波辐射出去。
[0073] 在一些实施例中,终端设备的天线140和收发器120耦合,使得终端设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统
(global system for mobile communications,GSM),通用分组无线服务(general packet 
radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分
多址(wideband code division multiple access,WCDMA),时分码分多址(time‑division 
code division multiple access,TD‑SCDMA),长期演进(long term evolution,LTE),BT,
GNSS,WLAN,NFC ,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global 
positioning system,GPS),全球导航卫星系统(global navigation satellite system,
GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星
系统(quasi‑zenith satellite system,QZSS)和/或星基增强系统(satellite based 
augmentation systems,SBAS)。
[0074] 终端设备通过GPU,显示单元170,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示单元170和应用处理器。GPU用于执行数学和几何计算,用于图形渲
染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
[0075] 显示单元170用于显示图像,视频等。显示单元170包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic lightemitting 
diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(activematrix 
organic light emitting diode的,AMOLED),柔性发光二极管(flex light‑emitting 
diode,FLED),Miniled,MicroLed,Micro‑oLed,量子点发光二极管(quantum dot light 
emitting diodes,QLED)等。在一些实施例中,终端设备可以包括1个或N个显示单元170,N
为大于1的正整数。
[0076] 终端设备可以通过ISP,摄像头190,视频编解码器,GPU,显示单元170以及应用处理器等实现拍摄功能。
[0077] ISP用于处理摄像头190反馈的数据。例如,录制视频时,打开摄像头,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递
给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。
[0078] ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头190中。摄像头190用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感
光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物
半导体(complementary metal‑oxide‑semiconductor,CMOS)光电晶体管。感光元件把光信
号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出
到DSP
[0079] 加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备可以包括1个或N个摄像头190,N为大于1的正整数。数字信号处理器用
于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设
备在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
[0080] 视频编解码器用于对数字视频压缩或解压缩。终端设备可以支持一种或多种视频编解码器。这样,终端设备可以播放或录制多种编码格式的视频,例如:动态图像专家组
(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
[0081] NPU为神经网络(neural‑network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU
可以实现终端设备的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
[0082] 存储器130可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。存储器130可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一
个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端
设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,存储器130可以包括高
速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,
通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在存储器
130的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备的各种功能应用
以及数据处理。
[0083] 终端设备可以通过音频电路180,扬声器182,麦克风184,以及应用处理器等实现音频功能。例如音乐播放,录音等。
[0084] 音频电路180用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频电路180还可以用于对音频信号编码和解码。在一些实施例
中,音频电路180可以设置于处理器110中,或将音频电路180的部分功能模块设置于处理器
110中。
[0085] 扬声器182,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备可以通过扬声器182收听音乐,或收听免提通话。
[0086] 麦克风184,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过靠近麦克风184发声,将声音信号输入到麦克风184。终端设
备可以设置至少一个麦克风184。在另一些实施例中,终端设备可以设置两个麦克风184,除
了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端设备还可以设置三个,四
个或更多麦克风184,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能
等。
[0087] 终端设备,如手机、平板电脑、车载电脑等,通常支持的音频通道有三种类型,分别是蓝牙通话音频通道,蓝牙媒体音频通道,终端音频通道(外放音频通道和听筒音频通道)。
终端设备可以通过蓝牙与具备音频播放能力的蓝牙设备,如蓝牙耳机、车载音响等,建立连
接。在终端设备与蓝牙设备连接成功后,运行于终端设备的应用可以通过蓝牙音频通道将
音频数据发送至蓝牙设备进行播放。
[0088] 以终端设备为手机为例,手机往往支持蓝牙通话音频通道以及蓝牙媒体音频通道这两种类型的蓝牙音频通道。手机与外部设备通过蓝牙连接时,出于各种原因,如用户配置
等,手机的操作系统可能未使能自身支持的每种类型的蓝牙音频通道,例如仅使能了蓝牙
通话音频通道或仅使能了蓝牙媒体音频通道。而如果手机内的应用向蓝牙设备输出音频数
据的音频通道的类型未被终端设备使能,则将导致应用无法成功向蓝牙设备发送数据,即
用户无法通过蓝牙设备播放来自该应用的音频,给蓝牙设备的使用带来了不便。
[0089] 示例性的,假设用户将手机与蓝牙耳机连接,以希望通过蓝牙耳机播放一应用的语音消息。假设该应用通过蓝牙通话音频通道将音频数据发送至蓝牙耳机进行播放,而根
据用户配置,手机的操作系统仅为该蓝牙耳机使能蓝牙媒体音频通道,而未使能蓝牙通话
音频通道。则该应用无法将音频数据发送至蓝牙耳机,导致用户无法通过蓝牙耳机播放该
应用的语音消息。
[0090] 有鉴于此,本申请提供了一种音频播放方法,应用于终端设备,本文中的终端设备可以是指支持蓝牙功能和音频播放功能的任意电子设备,包括但不限于手机、平板、个人电
脑、车载电脑等。本申请提供的音频播放方法可以如图2所示,所述终端设备外接蓝牙设备,
所述终端设备内具有至少一个应用,所述应用支持通过蓝牙输出音频,本申请提供的音频
播放方法包括:
[0091] S201,终端设备获取目标应用当前使用的第一蓝牙音频通道的类型,以及终端设备为所述蓝牙设备使能的第二蓝牙音频通道的类型。
[0092] 其中,目标应用可以是运行于终端设备的操作系统中的任意应用,且目标应用应当支持音频输出功能。示例性的,目标应用可以为用于播放音乐的应用,也可以为用于进行
语音聊天的应用。
[0093] 蓝牙设备可以是能够与终端设备通过蓝牙连接的任意外部设备,且蓝牙设备支持音频播放功能,示例性的,蓝牙设备可以是蓝牙耳机、车载音响等。蓝牙设备可以是在目标
应用启动前接入终端设备的,也可以是在目标应用启动后接入终端设备的。若蓝牙设备在
目标应用启动前接入终端设备,则S201的执行时机为目标应用启动时。若蓝牙设备在目标
应用启动后接入终端设备,则S201的执行时机为蓝牙设备接入终端设备时。
[0094] 以终端设备为手机为例,终端设备为蓝牙设备使能的第二蓝牙音频通道即为:终端设备的操作系统中框架(framework)层内的音频管理器(AudioManager)为蓝牙设备使能
的第二蓝牙音频通道,详见图4。可以通过与框架层内的音频管理器进行数据交互,从而获
取第二蓝牙音频通道的类型,如对框架层内的音频管理器进行监听,又如接收框架层内的
音频管理器发送的用于表示第二蓝牙音频通道的类型的信息。
[0095] S202,若终端设备识别出所述第一蓝牙音频通道的类型和第二蓝牙音频通道的类型不匹配,则将目标应用当前使用的第一蓝牙音频通道切换至第二蓝牙音频通道;
[0096] 第一蓝牙音频通道的类型和第二蓝牙音频通道的类型不匹配是指:第一蓝牙音频通道的类型与第二蓝牙音频通道的类型不相同。反之,如果第二蓝牙音频通道的类型与第
一蓝牙音频通道的类型相同,则一蓝牙音频通道的类型与第二蓝牙音频通道的类型匹配。
[0097] 可以理解的是由于第二蓝牙音频通道为操作系统为蓝牙设备使能的音频通道,如果第一蓝牙音频通道的类型与第二蓝牙音频通道的类型不匹配,则认为第一蓝牙音频通道
未被操作系统使能,因此目标应用无法通过第一蓝牙音频通道向蓝牙设备发送音频数据。
[0098] 为了使得目标应用能够向蓝牙设备发送音频数据实现播放,目标应用需要通过已经被操作系统使能的第二蓝牙音频通道输出音频数据,因此需要将目标应用当前使用的第
一蓝牙音频通道切换为第二蓝牙音频通道。
[0099] 终端设备切换目标应用输出音频数据的蓝牙音频通道的方式可以参见图4所示,应用层中包括蓝牙适配器(BluetoothAdapter)和音频管理器(AudioManager),终端设备驱
动应用层中的音频管理器向框架(framework)层中的音频管理器的发送参数修改指令,框
架层中音频管理器根据参数修改指令驱动音频服务器(AudioService)打开蓝牙,并针对播
放模式、流类型、蓝牙状态、扬声器进行配置。
[0100] 音频服务器将经过配置的参数下发硬件抽象层(Hardware Abstract Layer)中的音频策略管理基类(AudioPolicyManagerBase)。音频策略管理基类根据下发的参数对终端
设备的用于播放音频的器件(包括听筒、扬声器、蓝牙耳机等)的音频播放进行管理,从而实
现将目标应用输出音频数据的蓝牙音频通道切换为第二蓝牙音频通道。
[0101] S203,终端设备控制目标应用通过第二蓝牙音频通道将音频数据发送至蓝牙设备进行播放。
[0102] 由于第二蓝牙音频通道为操作系统使能的蓝牙音频通道,并且目标应用当前使用的第一蓝牙音频通道已经被切换为第二蓝牙音频通道,因此目标应用当前使用的蓝牙音频
通道与系统使能的蓝牙音频通道匹配,因此目标应用可以通过当前使用的蓝牙音频通道将
音频数据发送至蓝牙设备进行播放。
[0103] 选用该实施例,终端设备可以通过第一蓝牙音频通道的类型和第二蓝牙音频通道的类型是否匹配,确定终端设备内对该外接蓝牙设备的第一蓝牙音频通道是否被操作系统
使能,进而在第一蓝牙音频通道未被使能的情况下,及时切换目标应用所使用的第一蓝牙
音频通道,以使得目标应用通过已使能的第二蓝牙音频通道输出音频数据。从而有效避免
了因蓝牙音频通道不匹配导致的蓝牙设备无法播放来自目标应用的音频数据的问题,保证
了应用能够成功通过蓝牙设备进行播放。满足了用户在使用过程中无需任何手动选择配置
即可实现蓝牙播放的期望。本申请由于是终端自动识别第一蓝牙音频通道的类型和第二蓝
牙音频通道的类型是否匹配,且在不匹配情况下自动切换目标应用的蓝牙音频通道类型,
切换快捷,使得用户无感知,用户体验性好。
[0104] 上述步骤S201中,终端设备获取自身的操作系统为所述蓝牙设备使能的第二蓝牙音频通道的类型的步骤有以下几种实现方式:
[0105] 方式一:终端设备直接获取自身的操作系统为所述蓝牙设备使能的第二蓝牙音频通道的类型,且仅获取一次后,就认为已经获得了自身的操作系统为所述蓝牙设备使能的
第二蓝牙音频通道的类型。此时获取的第二蓝牙音频通道的类型作为后续识别通道类型的
基础;
[0106] 方式二:终端设备重复获取终端设备的操作系统为蓝牙设备使能的第二蓝牙音频通道的类型,直至终端设备识别出到达预设时长阈值。
[0107] 预设时长阈值的长度根据应用场景的不同可以不同,示例性的,可以是0.5s、2s、3s、4s等时长,本示例对此不做任何限制,但是应当避免用户感知到步骤S201的存在。若蓝
牙设备在目标应用启动前接入终端设备,则到达预设时长阈值可以是指从目标应用启动的
时刻开始已经经过预设时长阈值,也可以是指从第一次获取第二蓝牙音频通道的类型开始
已经经过预设时长阈值。若蓝牙设备在目标应用启动后接入终端设备,则到达预设时长阈
值是指从蓝牙设备接入终端设备的时刻开始已经经过预设时长阈值。
[0108] 其中,重复获取可以是指周期性地获取,也可以是指通过持续监听的方式获取。周期性地获取时,周期的长度可以是100ms、120ms、200ms等,本申请对此不做任何限制。
[0109] 选用方式二,可以通过在到达预设时长阈值之前重复确定第二蓝牙音频通道的方式,提高确定出的第二蓝牙音频通道的类型的准确性,因此终端设备能够准确识别出第一
蓝牙音频通道的类型与第二蓝牙音频通道的类型是否匹配,进而使得终端设备能够准确判
断出是否需要切换目标应用当前使用的第一蓝牙音频通道。
[0110] 示例性的,在一种场景中,目标应用所使用的第一蓝牙音频通道为蓝牙媒体音频通道,终端设备的操作系统为蓝牙设备依次使能蓝牙通话音频通道和蓝牙媒体音频通道。
但是由于终端设备的性能较差,终端设备使能蓝牙媒体音频通道需要消耗较多的时间,导
致从终端设备使能蓝牙通话音频通道至终端设备使能蓝牙媒体通道之间存在一个较长的
时间间隔。因此,终端设备开始获取第二蓝牙音频通道的类型的时间有较大概率位于该时
间间隔内。而在终端设备开始获取第二蓝牙音频通道的类型的时间位于该时间间隔的情况
下,若采用方式一,则获取到的第二蓝牙音频通道的类型为蓝牙通话音频通道,因此终端设
备将识别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型不匹配,进而切换目标应
用当前使用的第一蓝牙音频通道。然而该场景中终端设备将使能蓝牙媒体音频通道,因此
实际上无需切换目标应用当前使用的第一蓝牙音频通道。可见,该场景中采用方式一将导
致终端设备对是否需要切换目标应用当前使用的第一蓝牙音频通道进行错误的判断。
[0111] 而若采用方式二,则直至到达预设时长阈值前,终端设备重复获取第二蓝牙音频通道的类型,因此只要终端设备在到达预设时长阈值前能够使能蓝牙媒体音频通道,则终
端设备能够将获取到的第二蓝牙音频通道的类型更新为蓝牙媒体音频通道,进而识别出第
一蓝牙音频通道的类型与第二蓝牙音频通道的类型匹配,即无需切换目标应用当前使用的
第一蓝牙音频通道。而实际上该场景中也无需切换目标应用当前使用的第一蓝牙音频通
道。可见,该场景中采用方式二能够使得终端设备能够准确判断出是否需要切换目标应用
当前使用的第一蓝牙音频通道。
[0112] 在前述方式二的基础上,前述S202的步骤有以下几种实现方式:
[0113] 方式a,当到达预设时长阈值,终端设备识别第一蓝牙音频通道的类型和第二蓝牙音频通道的类型是否匹配。若终端设备识别出第一蓝牙音频通道的类型和第二蓝牙音频通
道的类型不匹配,则将目标应用当前使用的第一蓝牙音频通道切换至第二蓝牙音频通道。
[0114] 方式a中,在到达预设时长阈值之前不执行S202,因此终端设备更不会执行S203。因此,如果目标应用输出音频数据,则输出的音频数据无法成功地发送至蓝牙设备进行播
放,导致目标应用输出的音频数据未被完整播放。因此,在一种可能的实施例中,终端设备
禁止目标应用输出音频数据,直至终端设备开始执行S203,选用该实施例,在目标应用输出
的音频数据能够成功地被蓝牙设备播放之前,禁止目标应用输出音频数据,从而避免目标
应用输出的音频数据无法被完整播放。
[0115] 方式b,每当终端设备获取到第二蓝牙音频通道的类型,终端设备识别第一蓝牙音频通道的类型和第二蓝牙音频通道的类型是否匹配。若终端设备识别出到达预设时长阈
值,且第一蓝牙音频通道的类型和第二蓝牙音频通道的类型不匹配,则将目标应用当前使
用的第一蓝牙音频通道切换至第二蓝牙音频通道。
[0116] 由于前述方式二中,终端设备重复获取第二蓝牙音频通道的类型,因此方式b中,终端设备重复识别第一蓝牙音频通道的类型和第二蓝牙音频通道的类型是否匹配。并且,
在一种可能的实施例中,若终端设备识别出第一蓝牙音频通道的类型和第二蓝牙音频通道
的类型匹配,则认为目标应用能够通过第一蓝牙音频通道将音频数据成功发送至蓝牙设备
进行播放,出于降低确定第二蓝牙音频通道的类型所消耗的系统资源的考虑,终止重复获
取第二蓝牙音频通道的类型。
[0117] 在以上实施例中,终端设备与外接蓝牙设备之间成功地实现蓝牙音频通道匹配之前,用户是无法听到终端设备内的应用通过蓝牙音频通道发出的任何声音的,为了解决该
问题,本申请还提供了一种音频播放方法,参见图3,图3所示为本申请实施例提供的音频播
放方法的另一种流程示意图,具体包括:
[0118] S301,终端设备获取目标应用当前使用的第一蓝牙音频通道的类型,并重复获取终端设备的操作系统为所述蓝牙设备使能的第二蓝牙音频通道类型,直至终端设备识别出
到达预设时长阈值。
[0119] 该步骤即采用前述方式二实现S201中的终端设备获取自身的操作系统为所述蓝牙设备使能的第二蓝牙音频通道的类型的步骤。可以参见前述关于方式二的相关说明,在
此不再赘述。
[0120] S302,若终端设备识别出第一蓝牙音频通道的类型与第一次获取到的第二蓝牙音频通道的类型不匹配,则将目标应用输出音频数据切换至第三音频通道,其中,第三音频通
道为非蓝牙通道。
[0121] 通过第三音频通道可以通过终端设备的音频组件实现音频播放,其中,终端设备的音频组件可以是指终端设备中具备音频播放功能的任一组件,包括但不限于:扬声器、听
筒等。第一次获取到的第二蓝牙音频通道的类型是指:在终端设备重复获取第二蓝牙音频
通道的类型的过程中,终端设备最先获取到的第二蓝牙音频通道的类型。
[0122] 若第一蓝牙音频通道的类型与第一次获取到的第二蓝牙音频通道的类型不匹配,则认为第一蓝牙音频通道未被操作系统使能,因此目标应用当前无法通过第一蓝牙音频通
道向蓝牙设备发送音频数据进行播放,但是操作系统后续可能使能第一蓝牙音频通道,因
此终端设备暂时无需切换目标应用当前使用的第一蓝牙音频通道。而为了用户此时能够听
到目标应用输出的音频,本实施例中,终端设备将目标应用输出音频数据切换至第三音频
通道,以使得目标应用能够通过非蓝牙通道暂时实现音频播放。
[0123] S303,若终端设备识别出到达预设时长阈值且第一蓝牙音频通道的类型和第二蓝牙音频通道的类型不匹配,则将目标应用当前使用的第一蓝牙音频通道切换至第二蓝牙音
频通道;
[0124] 在终端设备将目标应用当前使用的第一蓝牙音频通道切换至第二蓝牙音频通道后,目标应用能够通过第二蓝牙音频通道将音频数据发送至蓝牙设备进行播放,因此目标
应用不再通过第三音频通道输出音频数据。
[0125] S304,终端设备控制目标应用通过第二蓝牙音频通道将音频数据发送至蓝牙设备进行播放,关闭第三音频通道。
[0126] 该步骤与前述S203相同,可以参见前述S203的相关说明,在此不再赘述。
[0127] 选用该实施例,终端设备在识别出第一蓝牙音频通道的类型与第一次获取到的第二蓝牙音频通道的类型不匹配,则控制目标应用通过第三音频通道输出音频数据,以实现
音频播放。从而避免了在终端设备与外界蓝牙设备之间成功地实现蓝牙音频通道类型的匹
配之前,用户无法听到目标应用输出的音频。
[0128] 示例性的,以目标应用为用于导航的应用为例,则若在到达预设时长阈值之前禁止目标应用输出音频数据,则在达到预设时长阈值之前,用户无法收听到目标应用输出的
导航语音,给用户的驾驶带来了不便。而选用该实施例,可以解决该技术问题。
[0129] 在前述图2所示的实施例的基础上,还可以包括步骤S204:若终端设备识别出第一蓝牙音频通道不为优先级最高的蓝牙音频通道,则将目标应用当前使用的第一蓝牙音频通
道切换至优先级最高的蓝牙音频通道。
[0130] S204可以是在S201之前执行的,也可以是在S201之后执行的,S204应当在S202之前执行。通过步骤S204,将使得在执行S202时第一蓝牙音频通道为优先级最高的蓝牙音频
通道。
[0131] 选用该实施例,可以保证目标应用当前使用的第一蓝牙音频通道为优先级最高的蓝牙音频通道,而目标应用通过优先级最高的蓝牙音频通道输出音频数据是能够达到最优
的输出方式。即,选用该实施例,可以使得目标应用在最优的方式输出音频数据。
[0132] 示例性的,假设目标应用为用于播放音乐的应用,则蓝牙媒体音频通道为优先级最高的蓝牙音频通道,目标应用通过蓝牙媒体音频通道输出音频数据时能够使得输出的音
频数据质量较高。假设目标应用为用于语音聊天的应用,则蓝牙通话音频通道为优先级最
高的蓝牙音频通道,目标应用通过蓝牙通话音频通道输出音频数据时能够在满足用户对音
频数据质量的要求的情况下,避免占用蓝牙媒体音频通道的带宽。
[0133] 终端设备在识别第一蓝牙音频通道的类型与第二蓝牙音频通道的类型是否匹配时,除了前述S202中识别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型不匹配
外,终端设备也可能识别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型匹配。
[0134] 若终端设备识别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型匹配,则认为第一蓝牙音频通道为已经使能的蓝牙音频通道,因此目标应用可以通过第一蓝牙音频
通道向蓝牙设备发送音频数据进行播放,终端设备无需切换目标应用输出音频数据的蓝牙
音频通道。因此,在一种可能的实施例中,若终端设备识别出第一蓝牙音频通道的类型与第
二蓝牙音频通道的类型匹配,则控制目标应用通过第一蓝牙音频通道将音频数据发送之蓝
牙设备进行播放。
[0135] 在另一种可能的实施例中,出于实际需求,若终端设备识别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型匹配,也将目标应用输出音频数据的蓝牙音频通道切换
为第二蓝牙音频通道,示例性的,若终端设备识别出第一蓝牙音频通道不为优先级最高的
蓝牙音频通道,且第二蓝牙音频通道包括优先级最高的蓝牙音频通道,则即使终端识别出
第一蓝牙音频通道的类型与第二蓝牙音频通道的类型匹配,终端设备将目标应用当前使用
的第一蓝牙音频通道切换至优先级最高的蓝牙音频通道。
[0136] 在执行S202之前,终端设备还可以识别出第二蓝牙音频通道的个数。若终端设备识别出第二蓝牙音频通道的个数等于终端设备所支持的蓝牙音频通道的总数,则认为终端
设备的操作系统已经为蓝牙设备使能所有蓝牙音频通道,第一蓝牙音频通道的类型必然与
第二蓝牙音频通道的类型匹配,终端设备无需再识别第一蓝牙音频通道的类型与第二蓝牙
音频通道的类型是否匹配。
[0137] 为了更清楚地对本申请提供的音频播放方法进行说明,下面将从功能模块的角度对本申请提供的音频播放方法的实现进行说明。
[0138] 本申请提供的音频播放方法通过终端设备中的四个功能模块实现,该四个功能模块包括:排序模块、获取模块、判断模块以及切换模块。该四个功能模块中的任一功能模块
可以是由目标应用开发方在开发目标应用时集成于目标应用中的功能模块,也可以是由终
端设备的生产方或操作系统的提供方利用目标应用开发方提供的应用接口开发得到的独
立于目标应用的功能模块。
[0139] 当四个功能模块是由目标应用开发方在开发目标应用时集成于目标应用中的功能模块时,如图4所示,四个功能模块位于应用层的音频管理器中,下面将分别对该四个功
能模块各自的功能进行说明,为描述方便,以下示例仅以终端设备支持的蓝牙音频通道为
蓝牙通话音频通道和蓝牙媒体音频通道为例进行说明,对于终端设备还支持其他蓝牙音频
通道的情况,原理是相同的,因此不再赘述。
[0140] 排序模块,用于为目标应用提供通过多种不同蓝牙音频通道输出音频数据的能力,并根据目标应用的类别,对该多种不同蓝牙音频通道进行优先级排序,确定出优先级最
高的蓝牙音频通道。从而使得终端设备根据排序模块确定出的优先级最高的蓝牙音频通
道,实现前述S204的步骤。
[0141] 获取模块,用于执行前述S201中获取终端设备的操作系统为蓝牙设备使能的第二蓝牙音频通道的类型的步骤。获取模块从框架层中的音频管理器处获取终端设备的操作系
统为蓝牙设备使能的第二音频通道的类型,并记录所获取的第二蓝牙音频通道的类型。
[0142] 获取模块每次记录第二蓝牙音频通道的类型,可以删除已记录的第二蓝牙音频通道的类型,也可以保留之前已经记录的第二蓝牙音频通道的类型。获取模块可以将第二蓝
牙音频通道的类型以任意形式的数据记录于任意存储位置,但是该数据应当为能够被判断
模块解析的数据,即判断模块能够确定该数据所表示的第二蓝牙音频通道,且该存储位置
应当为判断模块能够访问的存储位置。
[0143] 判断模块,用于判断第一蓝牙音频通道的类型与获取模块最新记录的第二蓝牙音频通道的类型是否匹配,并记录匹配结果。从而使得终端设备根据匹配结果实现前述S202
的步骤。判断模块可以将匹配结果以任意形式的数据记录于任意存储位置,但是该数据应
当为能够被切换模块解析的数据,即切换模块能够确定该数据所表示的匹配结果,且该存
储位置应当为切换模块能够访问的存储位置。
[0144] 切换模块,用于读取判断模块记录的结果,当读取到的匹配结果为不匹配时,通过框架层中的音频管理器驱动控制设备将目标应用输出音频数据的蓝牙音频通道切换至第
二蓝牙音频通道,即执行前述S202的步骤。业务模块的业务逻辑可以如图4所示,可以参见
前述S202中关于图4的相关说明,在此不再赘述。
[0145] 下面将在图4所示的基础上,分别针对三种不同的应用场景对各个功能模块的各自的业务逻辑以及各个功能模块之间的交互逻辑进行说明,可以参见图5‑图7,图5‑图7为
三种不同应用场景下的实施例:
[0146] 参见图5a,图5a为场景一中的实施例,场景一可以如图5b所示,场景一中终端设备支持的蓝牙音频通道包括蓝牙媒体音频通道和蓝牙通话音频通道,并且终端设备的操作系
统仅为蓝牙设备使能一种第二蓝牙音频通道,该场景中音频播放方法包括:
[0147] S501,排序模块根据蓝牙音频通道的优先级排序,控制目标应用当前使用的第一蓝牙音频通道为优先级最高的蓝牙音频通道。
[0148] 排序模块执行的S501相当于前述S204的步骤。优先级最高的蓝牙音频通道可以是用户预先针对目标应用设置的,也可以是由排序模块根据目标应用是否对播放质量存在要
求确定得得到的。
[0149] 如果目标应用对播放质量存在要求,则目标应用输出的音频数据的质量相对较高,而相较于蓝牙通话音频通道,蓝牙媒体音频通道能够传输质量更高的音频数据。因此,
目标应用的音频数据更适合通过蓝牙媒体音频通道输出。该情况下,优先级最高的蓝牙音
频通道为蓝牙媒体音频通道。
[0150] 如果目标应用对播放质量不存在要求,则目标应用输出的音频数据的质量相对较低,此时目标应用的音频数据更适合通过蓝牙媒体音频通道输出,以避免占用蓝牙媒体音
频通道资源。该情况下,优先级最高的蓝牙音频通道为蓝牙通话音频通道。
[0151] 本文中应用对声音质量存在要求是指:应用输出的音频数据需要以高于预设质量阈值的质量进行播放。可以理解的是,对于用于播放音乐的应用、用于播放视频的应用,往
往对声音质量存在要求,而对于用于导航的应用、用于语音聊天的应用,往往对声音质量不
存在要求。
[0152] S502,排序模块记录第一蓝牙音频通道的类型。
[0153] 排序模块执行的S502相当于前述S201中获取目标应用当前使用的第一蓝牙音频通道的类型的步骤。
[0154] 由于排序模块控制目标应用输出音频数据的蓝牙音频通道为优先级最高的蓝牙音频通道,因此排序模块记录的第一蓝牙音频通道记为优先级最高的蓝牙音频通道。
[0155] S503,操作系统向获取模块发送用于表示第二蓝牙音频通道的类型的通道信息。
[0156] 如前述说明,通道信息为操作系统中框架层的音频管理器发送的。
[0157] S504,获取模块记录通道信息所表示的第二蓝牙音频通道的类型。
[0158] S505,获取模块判断是否到达预设时长阈值,若是则驱动判断模块执行S506,若否则驱动操作系统再次执行S503,并返回执行S504。
[0159] 获取模块执行的S504‑S505用于实现前述前述S201中获取第二蓝牙音频通道的类型的步骤。获取模块驱动操作系统再次执行S503,是指获取模块驱动操作系统在预设周期
后再次执行S503,预设周期的时长可以根据实际需求和/或经验设置,如50ms、100ms、200ms
等。
[0160] S506,判断模块判断第一蓝牙音频通道的类型与第二蓝牙音频通道的类型是否匹配,若是则驱动目标应用通过第一蓝牙音频通道将音频数据发送至蓝牙设备进行播放,若
否则驱动切换模块执行S507。
[0161] 判断模块执行的S506用于实现前述S202中若终端设备识别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型是否匹配的步骤。
[0162] S507,切换模块将目标应用当前使用的第一蓝牙音频通道切换至第二蓝牙音频通道。并驱动目标应用通过第二蓝牙音频通道将音频数据发送至蓝牙设备进行播放。
[0163] 切换模块执行的S507用于实现前述S202中将目标应用当前使用的第一蓝牙音频通道切换至第二蓝牙音频通道的步骤,以及前述S203的步骤。
[0164] 为了更清楚地对图5a所示的实施例进行说明,以图5b所示的应用场景为例,由于微信为用于语音聊天的应用,因此排序模块将蓝牙通话音频通道设置为微信的默认蓝牙音
频通道。而网易云音乐为用于播放音乐的应用,因此排序模块将蓝牙媒体音频通道设置为
网易云音乐的默认蓝牙音频通道。如前述分析,若目标应用为微信,则第一蓝牙音频通道为
蓝牙通话音频通道,若目标应用为网易云音乐,则第一蓝牙音频通道为蓝牙媒体音频通道。
[0165] 如图5b所示,该应用场景中,操作系统为蓝牙设备使能的第二蓝牙音频通道包括蓝牙通话音频通道,而不包括蓝牙媒体音频通道。因此若目标应用为微信,则判断模块将识
别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型匹配,因此微信可以通过蓝牙通
话音频通道向蓝牙设备发送音频数据进行播放。
[0166] 而若目标应用为网易云音乐,则判断模块可以识别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型不匹配。切换模块根据判断模块的判断结果,将网易云音乐当前
使用的蓝牙音频通道切换至蓝牙通话音频通道。切换蓝牙通话音频通道后,网易云音乐当
前使用的蓝牙音频通道的类型为蓝牙通话音频通道,与操作系统为蓝牙设备使能的第二蓝
牙音频通道匹配,因此此时网易云音乐可以通过蓝牙通话音频通道向蓝牙设备发送音频数
据进行播放。
[0167] 图5b以及下文中图6b、图7b所示的场景中,排序模块、获取模块、判断模块以及切换模块位于应用层的音频管理器中,详见图4,图5b、图6b以及图7b未着重体现应用场景,未
绘制排序模块、获取模块、判断模块以及切换模块。
[0168] 为了更清楚地图5a所示的实施例中各个功能模块之间的交互过程进行说明,可以参见图5c,图5c所示为该实施例中各个功能模块之间的交互流程图,包括:
[0169] S501,排序模块根据蓝牙音频通道的优先级排序,控制目标应用当前使用的第一蓝牙音频通道为优先级最高的蓝牙音频通道。
[0170] S502a,排序模块在第一预设存储空间记录用于表示第一蓝牙音频通道的类型的第一数据。
[0171] 第一数据的形式根据应用场景的不同可以不同,示例性的第一数据可以是一个二进制数,当该二进制数的取值为1时,表示第一蓝牙音频通道的类型为蓝牙通话音频通道,
当该二进制数的取值为0时,表示第一蓝牙音频通道的类型为蓝牙媒体音频通道。第一预设
存储空间为终端设备的任一存储介质中能够被排序模块和判断模块访问的存储空间。
[0172] S502b,判断模块从第一预设存储空间读取第一数据,以确定第一蓝牙音频通道。
[0173] 判断模块读取并解析第一数据,以确定第一数据所表示的第一蓝牙音频通道。
[0174] S503a,操作系统向获取模块发送用于表示第二蓝牙音频通道的类型的通道信息。
[0175] S503b,获取模块接收并解析通道信息,以确定第二蓝牙音频通道的类型。
[0176] S504a,获取模块在第二预设存储空间记录用于表示第二蓝牙音频通道的类型的第二数据。
[0177] 第二数据和通道信息虽然都用于表示第二蓝牙音频通道,但是第二数据和通道信息的形式可以相同,也可以不同。第二预设存储空间为终端设备的任一存储介质中能够被
获取模块和判断模块访问的存储空间。
[0178] S504b,判断模块从第二预设存储空间读取第二数据,以确定第二蓝牙音频通道的类型。
[0179] 判断模块读取并解析第二数据,以确定第二数据所表示的第二蓝牙音频通道。
[0180] S505a,获取模块判断是否到达预设时长阈值,若是则执行S505b,若否则执行S505c。
[0181] 该示例中,预设时长阈值是指从目标应用启动开始经过预设时间阈值的时长阈值。
[0182] S505b,获取模块向判断模块发送第一触发指令。
[0183] S505c,获取模块向操作系统发送第二触发指令。
[0184] 操作系统响应于第二触发指令后,将再次向获取模块发送通道信息。
[0185] S506a,判断模块响应于第一触发指令,判断第一蓝牙音频通道的类型与第二蓝牙音频通道的类型是否匹配,得到判断结果。
[0186] S506b,判断模块在第三预设存储空间记录用于表示判断结果的第三数据。
[0187] 第三数据的形式根据应用场景的不同可以不同,示例性的第三数据可以是一个二进制数,当该二进制数取值为1时,表示不匹配,当该二进制数的取值为0时,表示匹配。第三
预设存储空间为终端设备的任一存储介质中能够被判断模块、切换模块访问的存储空间。
[0188] S506c,切换模块读取从第三预设存储空间读取第三数据,以确定匹配结果。
[0189] S506d,若匹配结果为匹配,则切换模块向目标应用发送第三触发指令。
[0190] 目标应用响应于第三触发指令,通过第一蓝牙音频通道将音频数据发送至蓝牙设备进行播放。
[0191] S507a,若匹配结果为不匹配,则切换模块将目标应用当前使用的第一蓝牙音频通道切换至第二蓝牙音频通道。
[0192] S507b,切换模块向目标应用发送第四触发指令。
[0193] 目标应用响应于第四触发指令,通过第二蓝牙音频通道将音频数据发送至蓝牙设备进行播放。
[0194] 参见图6a,图6a为场景二中的实施例,场景二可以如图6b所示,场景二中终端设备支持的蓝牙音频通道包括蓝牙媒体音频通道和蓝牙通话音频通道,并且终端设备的操作系
统仅为蓝牙设备使能一种第二蓝牙音频通道,该场景中音频播放方法包括:
[0195] S601,排序模块根据蓝牙音频通道的优先级排序,控制目标应用当前使用的第一蓝牙音频通道为优先级最高的蓝牙音频通道。
[0196] 排序模块执行的S601相当于前述S204的步骤。
[0197] S602,排序模块记录第一蓝牙音频通道的类型。
[0198] 排序模块执行的S602相当于前述S201中获取目标应用当前使用的第一蓝牙音频通道的类型的步骤。
[0199] S603,获取模块通过监听确定操作系统为蓝牙设备使能的第二蓝牙音频通道的类型。
[0200] S604,获取模块记录通过监听确定的第二蓝牙音频通道的类型。
[0201] S605,获取模块判断是否到达预设时长阈值,若是则驱动判断模块执行S607,若否则返回执行S604
[0202] 获取模块执行的S603‑S605用于实现前述前述S201中获取第二蓝牙音频通道的类型的步骤。
[0203] S606,若判断模块识别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型不匹配,则驱动获取模块将目标应用输出音频数据切换至第三音频通道。
[0204] 判断模块执行的S606用于实现前述S302的步骤。
[0205] S607,判断模块判断第一蓝牙音频通道的类型与第二蓝牙音频通道的类型是否匹配,若是则驱动目标应用通过第一蓝牙音频通道将音频数据发送至蓝牙设备进行播放,若
否则驱动切换模块执行S608。
[0206] 判断模块执行的S607用于实现前述S202中若终端设备识别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型是否匹配的步骤。
[0207] S608,切换模块将目标应用当前使用的第一蓝牙音频通道切换至第二蓝牙音频通道。并驱动目标应用通过第二蓝牙音频通道将音频数据发送至蓝牙设备进行播放。
[0208] 切换模块执行的S608用于实现前述S202中将目标应用当前使用的第一蓝牙音频通道切换至第二蓝牙音频通道的步骤,以及前述S203的步骤。
[0209] 为了更清楚地对图6a所示的实施例进行说明,以图6b所示的应用场景为例,由于微信为用于语音聊天的应用,因此排序模块将蓝牙通话音频通道设置为微信的优先级最高
的蓝牙音频通道。而网易云音乐为用于播放音乐的应用,因此排序模块将蓝牙媒体音频通
道设置为网易云音乐的优先级最高的蓝牙音频通道。如前述分析,若目标应用为微信,则第
一蓝牙音频通道为蓝牙通话音频通道,若目标应用为网易云音乐,则第一蓝牙音频通道为
蓝牙媒体音频通道。
[0210] 如图6b所示,该应用场景中,操作系统为蓝牙设备使能的第二蓝牙音频通道的类型为蓝牙通话音频通道。因此,获取模块第一获取到的第二蓝牙音频通道的类型为蓝牙通
话音频通道,且在到达预设时长阈值后,获取模块最新记录到的第二蓝牙音频通道的类型
为蓝牙通话音频通道。
[0211] 因此若目标应用为微信,则判断模块将识别出第一蓝牙音频通道的类型与第二蓝牙音频通道的类型匹配,因此微信可以通过蓝牙通话音频通道向蓝牙设备发送音频数据进
行播放。
[0212] 而若目标应用为网易云音乐,获取模块第一次获取到的第二蓝牙音频通道的类型为蓝牙通话音频通道,与网易云音乐当前使用的蓝牙媒体音频通道不匹配,因此获取模块
驱动网易云音乐输出音频数据切换至第三音频通道,以使得网易云音乐在到达预设时长阈
值之前通过终端设备的扬声器进行音频播放。
[0213] 并且在到达预设时长阈值后,判断模块将识别出第一蓝牙音频通道的类型与最新记录的第二蓝牙音频通道的类型不匹配。此时切换模块根据判断模块的判断结果,将网易
云音乐当前使用的第一蓝牙音频通道切换至第二蓝牙音频通道。切换蓝牙音频通道后,网
易云音乐当前使用的蓝牙音频通道的类型为蓝牙通话音频通道,与第二蓝牙音频通道的类
型匹配,因此此时网易云音乐不再继续通过扬声器进行音频播放,而是通过蓝牙通话音频
通道向蓝牙设备发送音频数据进行播放。
[0214] 为了更清楚地图6a所示的实施例中各个功能模块之间的交互过程进行说明,可以参见图6c,图6c所示为该实施例中各个功能模块之间的交互流程图,包括:
[0215] S601,排序模块根据蓝牙音频通道的优先级排序,控制目标应用当前使用的第一蓝牙音频通道为优先级最高的蓝牙音频通道。
[0216] S602a,排序模块在第一预设存储空间记录用于表示第一蓝牙音频通道的第一数据。
[0217] S602b,判断模块从第一预设存储空间读取第一数据,以确定第一蓝牙音频通道的类型。
[0218] S603,获取模块通过监听确定操作系统为蓝牙设备使能的第二蓝牙音频通道的类型。
[0219] S604a,获取模块在第二预设存储空间记录用于表示第二蓝牙音频通道的类型的第二数据。
[0220] S604b,判断模块从第二预设存储空间读取第二数据,以确定第二蓝牙音频通道的类型。
[0221] S605a,若判断模块识别出第一蓝牙音频通道的类型与第一次获取到的第二蓝牙音频通道的类型不匹配,向获取模块发送第五触发指令。
[0222] S605b,获取模块响应于第五触发指令,将目标应用输出音频数据切换至第三音频通道。
[0223] S606a,获取模块判断是否到达预设时长阈值,若是则执行S605b,若否则返回执行S603。
[0224] 该示例中,预设时长阈值是指从目标应用启动开始经过预设时间阈值的时长阈值。
[0225] S606b,获取模块向判断模块发送第一触发指令。
[0226] S607a,判断模块响应于第一触发指令,判断第一蓝牙音频通道的类型与第二蓝牙音频通道的类型是否匹配。
[0227] S607b,判断模块在第三预设存储空间记录用于表示判断结果的第三数据。
[0228] S607c,切换模块读取从第三预设存储空间读取第三数据,以确定匹配结果。
[0229] S607d,若匹配结果为匹配,则切换模块向目标应用发送第三触发指令。
[0230] 目标应用响应于第三触发指令,通过第一蓝牙音频通道将音频数据发送至蓝牙设备进行播放。
[0231] S608a,若匹配结果为不匹配,则切换模块将目标应用当前使用的第一蓝牙音频通道切换至第二蓝牙音频通道。
[0232] S608b,切换模块向目标应用发送第四触发指令。
[0233] 目标应用响应于第四触发指令,通过第二蓝牙音频通道将音频数据发送至蓝牙设备进行播放。
[0234] 参见图7a,图7a为场景三中的实施例,场景三可以如图7b所示,场景三中终端设备支持的蓝牙音频通道包括蓝牙媒体音频通道和蓝牙通话音频通道,并且终端设备的操作系
统为蓝牙设备使能两种第二蓝牙音频通道,该场景中音频播放方法包括:
[0235] S701,排序模块根据蓝牙音频通道的优先级排序,控制目标应用当前使用的第一蓝牙音频通道为优先级最高的蓝牙音频通道。
[0236] 排序模块执行的S701相当于前述S204的步骤。
[0237] S702,排序模块记录第一蓝牙音频通道的类型。
[0238] 排序模块执行的S702相当于前述S201中获取目标应用当前使用的第一蓝牙音频通道的类型的步骤。
[0239] S703,获取模块获取操作系统为蓝牙设备使能的第二蓝牙音频通道的类型。
[0240] 获取模块执行的S703用于实现前述前述S201中获取第二蓝牙音频通道的类型的步骤。
[0241] S704,判断模块判断第二蓝牙音频通道的数目是否等于终端设备所支持的蓝牙音频通道的总数。
[0242] 示例性的,若终端设备所支持的蓝牙音频通道的总数为2,则判断第二蓝牙音频通道的数目是否等于2。可以理解的是,如果第二蓝牙音频通道的数目等于终端设备所支持的
蓝牙音频通道的总数,则认为终端设备为蓝牙设备使能所有蓝牙音频通道,反之,如果第二
蓝牙音频通道的数目不等于(即小于)终端设备所支持的蓝牙音频通道的总数,则认为终端
设备未为蓝牙设备使能所有蓝牙音频通道。因此,若第二蓝牙音频通道的数目等于终端设
备所支持的蓝牙音频通道的总数,则第一蓝牙音频通道的类型必然与第二蓝牙音频通道的
类型匹配。
[0243] 若第二蓝牙音频通道的数目不等于终端设备所支持的蓝牙音频通道的总数,则第二蓝牙音频通道的数目为1个,此时可以参见场景一和场景二,在此不再赘述。
[0244] S705,若判断模块识别出第二蓝牙音频通道的数目等于终端设备所支持的蓝牙音频通道的总数,则判断第一蓝牙音频通道是否为优先级最高的蓝牙音频通道,若是则驱动
目标应用通过第一蓝牙音频通道将音频数据发送至蓝牙设备进行播放,若否则驱动切换模
块执行S706
[0245] 如前述分析,此时可以认为第一蓝牙音频通道的类型必然与第二蓝牙音频通道的类型匹配,因此在该示例中判断模块不判断第一蓝牙音频通道的类型是否与第二蓝牙音频
通道的类型匹配。在另一些可能的实施例中,即使第二蓝牙音频通道的数目等于终端设备
所支持的蓝牙音频通道的总数,判断模块仍然判断第一蓝牙音频通道的类型是否与第二蓝
牙音频通道的类型匹配。
[0246] S706,切换模块将目标应用当前使用的第一蓝牙音频通道切换至优先级最高的蓝牙音频通道。并驱动目标应用通过优先级最高的蓝牙音频通道将音频数据发送至蓝牙设备
进行播放。
[0247] 选用该实施例,进一步保证目标应用尽可能通过默认蓝牙音频通道输出音频数据,以使得目标应用输出的音频数据能够更好地符合实际需求。
[0248] 为了更清楚地对图7a所示的实施例进行说明,以图7b所示的应用场景为例,由于微信为用于语音聊天的应用,因此排序模块将蓝牙通话音频通道设置为微信的默认蓝牙音
频通道。而网易云音乐为用于播放音乐的应用,因此排序模块将蓝牙媒体音频通道设置为
网易云音乐的默认蓝牙音频通道。但是,出于各种原因,如排序模块故障、用户设置等,网易
云音乐输出音频数据的蓝牙音频通道为蓝牙通话音频通道,因此该应用场景中,无论目标
应用为微信或网易云音乐,第一蓝牙音频通道为蓝牙通话音频通道。
[0249] 如图7b所示,该应用场景中,操作系统为蓝牙设备使能的第二蓝牙音频通道包括蓝牙通话音频通道,且包括蓝牙媒体音频通道。因此第一蓝牙音频通道的类型总是与第二
蓝牙音频通道的类型匹配。
[0250] 由于微信的优先级最高的蓝牙音频通道为蓝牙通话音频通道,因此若目标应用为微信,则判断模块将识别出第一蓝牙音频通道为优先级最高的蓝牙音频通道。因此微信可
以通过第一蓝牙通话音频通道向蓝牙设备发送音频数据进行播放。
[0251] 而由于网易云音乐的优先级最高的蓝牙音频通道为蓝牙媒体音频通道,因此若目标应用为网易云音乐,则判断模块将识别出第一蓝牙音频通道不为优先级最高的蓝牙音频
通道。因此判断模块驱动切换模块将网易云音乐当前使用的第一蓝牙音频通道切换至优先
级最高的蓝牙音频通道,即蓝牙媒体音频通道。而由于操作系统已经为蓝牙设备使能蓝牙
媒体音频通道,因此在将当前使用的第一蓝牙音频通道切换至蓝牙媒体音频通道后,网易
云音乐可以通过蓝牙媒体音频通道向蓝牙设备发送音频数据进行播放。
[0252] 为了更清楚地图7a所示的实施例中各个功能模块之间的交互过程进行说明,可以参见图7c,图7c所示为该实施例中各个功能模块之间的交互流程图,包括:
[0253] S701,排序模块根据蓝牙音频通道的优先级排序,控制目标应用当前使用的第一蓝牙音频通道为优先级最高的蓝牙音频通道。
[0254] S702a,排序模块在第一预设存储空间记录用于表示第一蓝牙音频通道的类型的第一数据。
[0255] S702b,判断模块从第一预设存储空间读取第一数据,以确定第一蓝牙音频通道的类型。
[0256] S703,获取模块获取操作系统为蓝牙设备使能的第二蓝牙音频通道的类型。
[0257] S704a,获取模块在第二预设存储空间记录用于表示第二蓝牙音频通道的类型的第二数据。
[0258] S704b,判断模块从第二预设存储空间读取第二数据,以确定第二蓝牙音频通道的类型。
[0259] S704c,判断模块判断第二蓝牙音频通道的数目是否等于终端设备所支持的蓝牙音频通道的总数。
[0260] S705a,若判断模块识别出第二蓝牙音频通道的数目等于终端设备所支持的蓝牙音频通道的总数,则判断第一蓝牙音频通道是否优先级最高的蓝牙音频通道,若是则判断
模块执行S705b,若否判断模块则执行S705c。
[0261] S705b,判断模块向目标应用发送第六触发指令。
[0262] 目标应用响应于第六触发指令,通过第一蓝牙音频通道将音频数据发送至蓝牙设备进行播放。
[0263] S705c,判断模块向切换模块发送第七触发指令。
[0264] S706a,切换模块响应于第七触发指令,将目标应用输出音频数据的蓝牙音频通道切换至优先级最高的蓝牙音频通道。
[0265] S706b,切换模块向目标应用发送第八触发指令。
[0266] 目标应用响应于第八触发指令,通过优先级最高的蓝牙音频通道将音频数据发送至蓝牙设备进行播放。
[0267] 对应于前述音频播放方法,本申请还提供了一种终端设备,参见图8,图8所示为本申请提供的终端设备的一种功能模块结构示意图,包括:
[0268] 获取模块801,用于获取目标应用当前使用的第一蓝牙音频通道的类型以及所述终端设备为蓝牙设备使能的第二蓝牙音频通道的类型;
[0269] 判断模块802,用于识别所述第一蓝牙音频通道的类型和所述第二蓝牙音频通道的类型是否匹配;
[0270] 切换模块803,用于若不匹配,则将所述目标应用当前使用的第一蓝牙音频通道切换至所述第二蓝牙音频通道;并控制所述目标应用通过所述第二蓝牙音频通道将音频数据
发送至所述蓝牙设备进行播放。
[0271] 终端设备可以通过第一蓝牙音频通道的类型和第二蓝牙音频通道的类型是否匹配,确定终端设备内对该外接蓝牙设备的第一蓝牙音频通道是否被操作系统使能,进而在
第一蓝牙音频通道未被使能的情况下,及时切换目标应用所使用的第一蓝牙音频通道,以
使得目标应用通过已使能的第二蓝牙音频通道输出音频数据。从而有效避免了因蓝牙音频
通道不匹配导致的蓝牙设备无法播放来自目标应用的音频数据的问题,保证了应用能够成
功通过蓝牙设备进行播放。满足了用户在使用过程中无需任何手动选择配置即可实现蓝牙
播放的期望。本申请由于是终端自动识别第一蓝牙音频通道的类型和第二蓝牙音频通道的
类型是否匹配,且在不匹配情况下自动切换目标应用的蓝牙音频通道类型,切换快捷,使得
用户无感知,用户体验性好。
[0272] 在一种可能的实施例中,所述获取模块801获取所述终端设备的操作系统为所述蓝牙设备使能的第二蓝牙音频通道的类型,包括:
[0273] 重复获取所述终端设备的操作系统为所述蓝牙设备使能的第二蓝牙音频通道的类型,直至所述终端设备识别出到达预设时长阈值;
[0274] 所述判断模块802识别所述第一蓝牙音频通道的类型和所述第二蓝牙音频通道的类型是否匹配,包括:
[0275] 识别所述第一蓝牙音频通道的类型和最新获取的第二蓝牙音频通道的类型是否匹配。
[0276] 在一种可能的实施例中,所述获取模块801,还用于当获取所述第二蓝牙音频通道的类型,若所述终端设备识别出所述第一蓝牙音频通道的类型与最新获取的第二蓝牙音频
通道的类型匹配,则终止重复确定所述终端设备的操作系统为所述蓝牙设备使能的第二蓝
牙音频通道。
[0277] 在一种可能的实施例中,所述切换模块803,还用于禁止所述目标应用输出音频数据,直至所述切换模块执行所述控制所述目标应用通过所述第二蓝牙音频通道将音频数据
发送至所述蓝牙设备进行播放的步骤。
[0278] 在一种可能的实施例中,所述切换模块803,还用于若识别出所述第一蓝牙音频通道的类型与第一次获取到的第二蓝牙音频通道的类型不匹配,则将目标应用输出音频数据
切换至第三音频通道,其中,所述第三音频通道为非蓝牙音频通道。
[0279] 在一种可能的实施例中,所述终端设备还包括排序模块,用于若识别出所述第一蓝牙音频通道不为优先级最高的蓝牙音频通道,则驱动所述切换模块将所述目标应用当前
使用的第一蓝牙音频通道切换至优先级最高的蓝牙音频通道。
[0280] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一音频播放
方法的步骤。
[0281] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一音频播放方法。
[0282] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序
产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或
部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计
算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质
中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机
指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字
用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或
数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者
是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以
是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘
Solid State Disk (SSD))等。
[0283] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于终端设
备、装置、计算机可读存储介质以及计算机程序产品的实施例而言,由于其基本相似于方法
实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0284] 以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。