蓝牙音频传输方法、装置及计算机可读存储介质与流程

文档序号:16008664发布日期:2018-11-20 20:23阅读:287来源:国知局

本发明涉及智能电视技术领域,尤其涉及一种蓝牙音频传输方法、蓝牙音频传输装置及计算机可读存储介质。



背景技术:

随着智能电视技术的发展,智能电视的音频输入源越来越多,包括智能电视节目的音频输入,带录音功能的蓝牙遥控器和带蓝牙模块的手机等。同时智能电视的音频输出源也越来越多,包括智能电视喇叭、蓝牙音箱、蓝牙耳机和软件应用等。

当智能电视拥有的音频输入源尤其是蓝牙音频输入源的增多,应用场景也变得丰富而复杂。例如用户希望在用智能电视欣赏音乐MV的同时使用蓝牙遥控器和朋友聊天,智能电视机需要同时从电视信源和蓝牙遥控器获取音频数据,并将蓝牙遥控器获取的蓝牙音频数据传输给聊天应用软件;例如蓝牙遥控器在语音识别功能实现中,语音识别应用需要获取蓝牙遥控器的蓝牙音频数据并将其传输到云端进行解析等。在现有技术中,智能电视系统还未能在软件上实现从多路音频输入源获取蓝牙音频数据给多个应用,满足不了不同应用场景下的音频传输需求。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种蓝牙音频传输的方法、蓝牙音频传输的装置和计算机可读存储介质,旨在解决上述背景技术中所描述的现有技术在蓝牙音频传输中的技术问题。

为实现上述目的,本发明提供一种蓝牙音频传输的方法,所述蓝牙音频传输的方法包括如下步骤:

在接收到多个应用获取蓝牙音频数据的请求消息时,分别获取每个所述请求消息中指定的蓝牙音频输入源和音频输出源,其中,每个所述请求消息中指定的所述蓝牙音频输入源与所述音频输出源相关联;

为每个所述请求消息启动对应的进程或线程,以所述进程或线程从所述蓝牙音频输入源读取蓝牙音频数据,并实时将所述蓝牙音频数据缓存到缓存空间;

从所述缓存空间读取每个所述请求消息对应的蓝牙音频数据,并发送给关联的所述音频输出源。

优选地,所述蓝牙音频传输的方法还包括以下步骤:

当没有接收到获取蓝牙音频数据的请求时,检测是否有默认音频输入源以外的音频输入源;

若检测到所述默认音频输入源以外的音频输入源,关闭所述默认音频输入源。

优选地,所述当没有接收到获取蓝牙音频数据的请求时,检测是否有默认音频输入源以外的音频输入源的步骤之后还包括:

检测是否有默认音频输出设备以外的音频输出源;

若有所述默认音频输出设备以外的音频输出源,关闭所述默认音频输出设备的音频输出功能。

优选地,所述若有所述默认音频输出设备以外的音频输出源,关闭所述默认音频输出设备的音频输出功能的步骤之后还包括:

若有多个所述默认音频输出设备以外的音频输出源,将优先级最高的所述音频输出源作为目标音频输出源。

优选地,所述从所述缓存空间读取每个所述请求消息对应的蓝牙音频数据,并发送给关联的所述音频输出源的步骤包括:

当所述请求消息对应有多路蓝牙音频数据时,提示用户有多路蓝牙音频混音的情况;

将所述多路蓝牙音频数据进行混音,并将混音后的蓝牙音频数据发送给关联的所述音频输出源。

优选地,所述在接收到多个应用获取蓝牙音频数据的请求消息时,获取每个所述请求消息中指定的音频输入源和音频输出源的步骤之后还包括:

当所述请求消息中指定的音频输出源不是默认音频输出设备时,关闭所述默认的音频输出设备的音频输出功能。

优选地,所述从各个所述音频输入源读取各个所述请求对应的蓝牙音频数据,并实时将所述蓝牙音频数据缓存到缓存空间的步骤包括:

为每个所述请求消息启动对应的进程或线程,以所述进程或线程从所述蓝牙音频输入源读取蓝牙音频数据;

获取每个所述请求对应的缓存速率;

实时将所述蓝牙音频数据以所述对应的缓存速率缓存到缓存空间。

此外,为实现上述目的,本发明还提供所述蓝牙音频传输装置,该装置包括:存储器、处理器、蓝牙模组及存储在所述存储器上并可在所述处理器上运行的蓝牙音频传输控制程序,所述蓝牙音频传输控制程序被所述处理器执行时实现如上所述的蓝牙音频传输方法的步骤。

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有蓝牙音频传输控制程序,所述蓝牙音频传输控制程序被处理器执行时实现如上所述的蓝牙音频传输方法的步骤。

本发明实施例提出的一种蓝牙音频传输的方法、蓝牙音频传输的装置和计算机可读存储介质,在接收到多个应用获取蓝牙音频数据的请求消息时,分别获取每个所述请求消息中指定的蓝牙音频输入源和音频输出源,其中,每个所述请求消息中指定的所述蓝牙音频输入源与所述音频输出源相关联,为每个所述请求消息启动对应的进程或线程,以所述进程或线程从所述蓝牙音频输入源读取蓝牙音频数据,并实时将所述蓝牙音频数据缓存到缓存空间,从所述缓存空间读取每个所述请求消息对应的蓝牙音频数据,并发送给关联的所述音频输出源。

本发明通过接收多个获取蓝牙音频数据的请求,根据请求的指示从各个音频输入源获取对应的蓝牙音频数据,并将蓝牙音频数据传输给关联的音频输出源,实现从多路音频输入源获取蓝牙音频数据给多个应用,从而满足不同应用场景下的音频传输需求。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明蓝牙音频传输方法第一实施例的流程示意图;

图3为本发明蓝牙音频传输方法第二实施例的流程示意图;

图4为本发明蓝牙音频传输方法第三实施例的流程示意图;

图5为本发明蓝牙音频传输方法第四实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:在接收到多个获取蓝牙音频数据的请求时,获取各个所述请求对应的音频输入源和音频输出源;从各个所述音频输入源获取各路所述蓝牙音频数据;将各路所述蓝牙音频数据传输给所述音频输出源。

由于现有技术中,智能电视系统还未能在软件上实现从多路音频输入源获取蓝牙音频数据给多个应用,满足不了不同应用场景下的音频传输需求。

本发明提供一种解决方案,通过接收多个获取蓝牙音频数据的请求,根据请求的指示从各个音频输入源获取对应的蓝牙音频数据,并将蓝牙音频数据传输给关联的音频输出源,实现从多路音频输入源获取蓝牙音频数据给多个应用,从而满足不同应用场景下的音频传输需求。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端为蓝牙音频传输装置。

如图1所示,该蓝牙音频传输装置可以包括:处理器1001,例如CPU,通信总线1002,蓝牙模组1003,存储器1004。其中,通信总线1002用于实现这些组件之间的连接通信。存储器1004可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1004可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1004中可以包括操作系统和蓝牙音频传输控制应用程序。

在图1所示的装置中,处理器1001可以用于调用存储器1004中存储的蓝牙音频传输控制程序,并执行以下操作:

在接收到多个应用获取蓝牙音频数据的请求消息时,分别获取每个所述请求消息中指定的蓝牙音频输入源和音频输出源,其中,每个所述请求消息中指定的所述蓝牙音频输入源与所述音频输出源相关联;

为每个所述请求消息启动对应的进程或线程,以所述进程或线程从所述蓝牙音频输入源读取蓝牙音频数据,并实时将所述蓝牙音频数据缓存到缓存空间;

从所述缓存空间读取每个所述请求消息对应的蓝牙音频数据,并发送给关联的所述音频输出源。

进一步地,处理器1001可以调用存储器1004中存储的蓝牙音频传输控制程序,还执行以下操作:

当没有接收到获取蓝牙音频数据的请求时,检测是否有默认音频输入源以外的音频输入源;

若检测到所述默认音频输入源以外的音频输入源,关闭所述默认音频输入源。

进一步地,处理器1001可以调用存储器1004中存储的蓝牙音频传输控制程序,还执行以下操作:

检测是否有默认音频输出设备以外的音频输出源;

若有所述默认音频输出设备以外的音频输出源,关闭所述默认音频输出设备的音频输出功能。

进一步地,处理器1001可以调用存储器1004中存储的蓝牙音频传输控制程序,还执行以下操作:

若有多个所述默认音频输出设备以外的音频输出源,将优先级最高的所述音频输出源作为目标音频输出源。

进一步地,处理器1001可以调用存储器1004中存储的蓝牙音频传输控制程序,还执行以下操作:

当所述请求消息对应有多路蓝牙音频数据时,提示用户有多路蓝牙音频混音的情况;

将所述多路蓝牙音频数据进行混音,并将混音后的蓝牙音频数据发送给关联的所述音频输出源。

进一步地,处理器1001可以调用存储器1004中存储的蓝牙音频传输控制程序,还执行以下操作:

当所述请求消息中指定的音频输出源不是默认音频输出设备时,关闭所述默认的音频输出设备的音频输出功能。

进一步地,处理器1001可以调用存储器1004中存储的蓝牙音频传输控制程序,还执行以下操作:

为每个所述请求消息启动对应的进程或线程,以所述进程或线程从所述蓝牙音频输入源读取蓝牙音频数据;

获取每个所述请求对应的缓存速率;

实时将所述蓝牙音频数据以所述对应的缓存速率缓存到缓存空间。

参照图2,本发明第一实施例提供一种蓝牙音频传输的方法,所述方法包括:

步骤S10,在接收到多个应用获取蓝牙音频数据的请求消息时,分别获取每个所述请求消息中指定的蓝牙音频输入源和音频输出源,其中,每个所述请求消息中指定的所述蓝牙音频输入源与所述音频输出源相关联。

在具备音频处理功能的设备中,存在多个音频输入源和音频输出源。音频设备可以是电视机、电脑或手机等电子设备。下面以电视机为例进行说明。

电视机的音频输入源包括电视节目、具有蓝牙功能的遥控器或手机;电视机的音频输出源包括电视喇叭、蓝牙音箱、蓝牙耳机和运行于电视机操作系统中的应用进程。

和上述多音频输入源及多音频输出源相对应的,电视机处理系统包括音频输入接口单元、蓝牙处理单元和音频服务单元。音频输入接口单元负责接收到的电视信号中的蓝牙音频数据,并且音频输入接口单元和电视喇叭之间存在硬件连接,即音频输入接口单元将电视节目中的蓝牙音频数据经由该硬件连接输出到电视喇叭进行音频播放。蓝牙处理单元负责接收和处理蓝牙遥控器或手机的蓝牙音频信号。音频服务单元负责从音频输入接口单元或蓝牙处理单元获取蓝牙音频数据,并将其输出到电视喇叭、蓝牙音箱、蓝牙耳机或应用进程。

在系统中,为每个音频输入源和每个音频输出源定义唯一的标识,供各处理单元进行识别,例如:

1)音频输出设备

音频输出到电视喇叭设备标识:

AUDIO_OUT_DEVICE_SPEAKER=0x0002;

音频输出到LINE OUT设备标识(有线耳机或音箱):

AUDIO_OUT_DEVICE_LINE_OUT=0x0004;

音频输出到蓝牙音箱或蓝牙耳机标识:

AUDIO_OUT_DEVICE_BT_SPEAKER=0x0008;

音频输出到应用进程标识:

AUDIO_OUT_DEVICE_APP=0x0010。

2)音频输入设备

音频输入设备为电视:

AUDIO_IN_DEVICE_TV=0x1002;

音频输入设备为蓝牙遥控器:

AUDIO_IN_DEVICE_BT_REMOTECONTROL=0x1004,

音频输入设备为蓝牙手机:

AUDIO_IN_DEVICE_BT_PHONE=0x1008。

音频服务单元提供蓝牙音频传输接口供应用进程调用,以发出蓝牙音频数据传输请求消息。该蓝牙音频传输接口参数包括音频输入源参数和音频输出源参数,其中音频输入源参数和音频输出源参数均需以上述音频设备标识进行赋值,以供接口调用方指定本次蓝牙音频传输对应的音频输入源和音频输出源。

当多个应用进程需要获取蓝牙音频数据时,各个应用进程调用该蓝牙音频传输接口向音频服务单元发出单独的蓝牙音频传输请求消息。在内存中建立传输请求消息队列,以缓存多个应用程序发出的多个蓝牙音频传输请求消息。音频服务单元实时查询该队列,并按照时间先后顺序一一处理队列中的蓝牙音频传输请求消息,获取每个蓝牙音频传输请求消息对应的音频输入源和音频输出源。

步骤S20,为每个所述请求消息启动对应的进程或线程,以所述进程或线程从所述蓝牙音频输入源读取蓝牙音频数据,并实时将所述蓝牙音频数据缓存到缓存空间。

音频服务单元在获取了每个蓝牙音频传输请求消息对应的音频输入源和音频输出源之后,从各个音频输入源获取各路蓝牙音频数据。具体地,音频服务单元可以通知音频接口输入单元,触发音频接口输入单元将接收到的音频输入源的蓝牙音频数据传输给音频服务单元或缓存到其指定的内存空间;音频服务单元也可以主动和音频接口输入单元建立连接,读取音频接口输入单元接收到的音频输入源的蓝牙音频数据,并将蓝牙音频数据缓存到预设的内存空间。

具体地,音频服务单元在接收到应用程序通过蓝牙音频传输接口传递的请求消息时,为每个请求消息所指定的音频输入源启动对应的进程或线程,以每个音频输入源对应的进程或线程获取每路蓝牙音频数据。

步骤S30,从所述缓存空间读取每个所述请求消息对应的蓝牙音频数据,并发送给关联的所述音频输出源。

音频服务单元在获取到各路蓝牙音频数据后,将各路蓝牙音频数据单元传输给对应的音频输出源。具体地,音频服务单元可以和对应的音频输出源建立连接,读取缓存中的蓝牙音频数据并将其传输给对应的音频输出源;音频服务单元也可以通知对应的音频输出源,触发该音频输出源主动读取缓存中的蓝牙音频数据,以完成传输。

进一步地,当请求消息对应有多路蓝牙音频数据时,即请求消息中指定了多个蓝牙输入源,对应启动了多个进程或线程获取到了多路蓝牙音频数据,此时需要提示用户有多路蓝牙音频混音的情况;在将多路蓝牙音频数据进行混音后,将混音后的蓝牙音频数据发送给关联的音频输出源。

在本实施例中,通过接收多个获取蓝牙音频数据的请求,根据请求的指示从音频输入源获取对应蓝牙音频数据,并将对应的蓝牙音频数据传输给关联的音频输出源,实现从多路音频输入源获取蓝牙音频数据给多个应用,从而满足不同应用场景下的音频传输需求。

进一步的,参照图3,本发明第二实施例基于第一实施例提供一种蓝牙音频传输的方法,本实施例的步骤包括:

步骤S40,当没有接收到多个获取蓝牙音频数据的请求时,检测是否有默认音频输入源以外的音频输入源。

以电视机为例,电视节目为电视机默认的音频输入源。当电视机系统启动起来之后,先检测是否收到来自应用程序的获取蓝牙音频数据的请求。当没有接收到来自应用程序的获取蓝牙音频数据的请求时,表明无法通过应用程序对蓝牙音频传输接口的调用来知晓存在的音频输入源,此时需要进入另一个流程,即检测是否有默认音频输入源以外的音频输入源。

步骤S50,若检测到所述默认音频输入源以外的音频输入源,关闭所述默认音频输入源。

当检测到默认音频输入源以外的音频输入源时,例如检测到蓝牙遥控器或蓝牙手机时,为了避免默认音频输入源和其他音频输入源的混音,需要关闭默认音频输入源。具体地,由音频服务单元中的控制模块控制关闭默认音频输入源。

如果没有检测到默认音频输入源以外的音频输入源,电视机系统将从默认的音频输入源获取蓝牙音频数据。

在本实施例中,若没有检测到默认音频输入源以外的音频输入源,还需要检测是否有默认音频输出设备以外的音频输出源。当检测到有所述默认音频输出设备以外的音频输出源,例如蓝牙耳机或蓝牙音箱时,关闭默认音频输出设备的音频输出功能。具体地,由音频服务单元中的控制模块控制关闭默认音频输出设备的音频输出功能。

若没有检测到默认音频输出设备以外的音频输出源,所有获取的蓝牙音频数据都从默认的音频输出源输出。

在本实施例中,在没有接收到多个获取蓝牙音频数据的请求时,检测是否有默认音频输入源以外的音频输入源,当检测到所述默认音频输入源以外的音频输入源时关闭默认音频输入源,避免默认音频输入源和其他音频输入源的混音。

进一步的,参照图4,本发明第三实施例基于第一实施例或第二实施例提供一种蓝牙音频传输的方法,本实施例在步骤S10之后包括:

步骤S60,当各个所述音频输出源均不是默认音频输出设备时,关闭所述默认的音频输出设备的音频输出功能。

音频服务单元在获取了各个蓝牙音频传输请求消息对应的音频输入源和音频输出源之后,检测各个音频输出源中是否有默认音频输出设备。当检测到各个音频输出源均不是默认音频输出设备时,关闭默认音频输出设备的音频输出功能。具体地,由音频服务单元中的控制模块控制关闭默认音频输出设备的音频输出功能。

此外,从简化处理和降低处理复杂度角度考虑,当各个音频输出源是多个不同的音频输出设备时,可以将各个音频输出设备中优先级最高的音频输出设备作为音频输出源,即多路的蓝牙音频数据都统一从优先级最高的音频输出设备输出。

在本实施例中,通过当各个所述音频输出源均不是默认音频输出设备时关闭所述默认的音频输出设备的音频输出功能,避免获取的音频输入源从默认的音频输出设备输出。

进一步的,参照图5,本发明第四实施例基于第一实施至第三实施例任一实施例提供一种蓝牙音频传输的方法,本实施例在步骤S20包括:

步骤S70,为每个所述请求消息启动对应的进程或线程,以所述进程或线程从所述蓝牙音频输入源读取蓝牙音频数据。

步骤S80,获取每个所述请求对应的缓存速率。

步骤S90,实时将所述蓝牙音频数据以所述对应的缓存速率缓存到缓存空间。

在音频服务单元提供给应用进程调用的蓝牙音频传输接口的接口参数中,除了音频输入源参数和音频输出源参数,还可以包括缓存空间地址,即应用进程调用该接口时可以通过该缓存空间地址指定获取的蓝牙音频数据对应的缓存空间。可指定的缓存空间地址范围根据系统内存硬件和内存分配的情况而得,并且可以根据不同应用程序对传输延迟的要求,指定不同等级的内存地址。

在音频服务单元提供给应用进程调用的蓝牙音频传输接口的接口参数中,除了音频输入源参数、音频输出源参数、缓存空间地址外,还可以包括缓存速率,即应用程序调用该接口时可以通过该缓存速率指定获取蓝牙音频数据时采用的缓存速率。音频服务单元在接收到应用程序通过蓝牙音频传输接口传递的请求时,从请求中获取蓝牙音频数据对应的缓存速率,从音频输入源获取蓝牙音频数据,并将该蓝牙音频数据以对应的缓存速率缓存到对应的缓存空间。

在本实施例中,通过获取各路所述蓝牙音频数据对应的缓存空间,从各个所述音频输入源获取各路所述蓝牙音频数据,并将各路所述蓝牙音频数据缓存到所述对应的缓存空间,在实现支持多路蓝牙音频输入同时,可通过优化和升级蓝牙音频数据的缓存空间来提高蓝牙音频传输的整体性能。

本发明还提供一种蓝牙音频传输装置,该装置包括:存储器、处理器、蓝牙模组及存储在所述存储器上并可在所述处理器上运行的蓝牙音频传输控制程序,所述蓝牙音频传输控制程序被所述处理器执行时实现所述的蓝牙音频传输方法的步骤。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有蓝牙音频传输控制程序,所述蓝牙音频传输控制程序被处理器执行时实现所述的蓝牙音频传输方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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