CN113316129A - 一种蓝牙设备中编解码能力的获取方法及电子设备 - Google Patents
一种蓝牙设备中编解码能力的获取方法及电子设备 Download PDFInfo
- Publication number
- CN113316129A CN113316129A CN202110437214.5A CN202110437214A CN113316129A CN 113316129 A CN113316129 A CN 113316129A CN 202110437214 A CN202110437214 A CN 202110437214A CN 113316129 A CN113316129 A CN 113316129A
- Authority
- CN
- China
- Prior art keywords
- bluetooth device
- seid
- stream
- capability
- endpoint
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/14—Direct-mode setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/005—Discovery of network devices, e.g. terminals
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供了一种蓝牙设备中编解码能力的获取方法及电子设备,以解决部分外接设备在获取电子设备的codec能力的过程中出现与电子设备异常断开的问题。基于该蓝牙设备中编解码能力的获取方法,在第一蓝牙设备(如车载终端)的编解码能力的数量小于第二蓝牙设备(如手机)的编解码能力的数量的情况下,当第一蓝牙设备向第二蓝牙设备发起流端点发现请求时,第二蓝牙设备可以将第二蓝牙设备中与第一蓝牙设备的codec能力相匹配的流端点的SEID,反馈给第一蓝牙设备,以减少第一蓝牙设备与第二蓝牙设备的交互次数,从而避免第二蓝牙设备与第一蓝牙设备出现异常断开的情况,进而提高第一蓝牙设备与第二蓝牙设备在流连接过程中的稳定性和可靠性,提高用户体验。
Description
技术领域
本申请涉及电子设备领域,尤其涉及一种编解码(codec)能力的获取方法及电子设备。
背景技术
具有蓝牙功能的电子设备和外接设备之间,进行音频/视频(audio/vidieo,A/V)数据传输,需要建立音频/视频流的连接。在传输音频/视频数据时,音频/视频数据会在蓝牙的源(source)端设备通过编码器编码后,传输至蓝牙的接收(sink)端设备,接收端设备再通过解码器进行解码,实现音频/视频数据的传输。
通常情况下,电子设备(如手机)能够支持的编解码器的数量较多,外接设备(如车载终端或蓝牙耳机)能够支持的编解码器的数量较少。然而,部分外接设备在获取电子设备的编解码(codec)能力的过程中,会存在由于电子设备侧的codec能力较多,而出现与电子设备异常断开的情况。
发明内容
本申请提供了一种蓝牙设备中编解码能力的获取方法及电子设备,以解决部分外接设备在获取电子设备的codec能力的过程中出现与电子设备异常断开的问题。
第一方面,本申请提供一种蓝牙设备中编解码能力的获取方法。该方法包括:当第一蓝牙设备与第二蓝牙设备配对成功后,第一蓝牙设备向第二蓝牙设备发送第一流端点发现请求。其中,流端点发现请求为AVDT_Discover_Req信令,用于请求获取第二蓝牙设备的流端点信息。响应于第一流端点发现请求,第二蓝牙设备向第一蓝牙设备发送第一流端点发现响应。第一流端点发现响应为AVDT_Discover_Rsp信令。其中,在第一蓝牙设备的编解码能力的数量小于第二蓝牙设备的编解码能力的数量的情况下,第一流端点发现响应包括SEID列表。SEID列表为第二蓝牙设备中的部分流端点对应的SEID。SEID列表中包括的SEID对应的流端点的编解码能力,与第一蓝牙设备中流端点的编解码能力相匹配。响应于第一流端点发现响应,第一蓝牙设备向第二蓝牙设备发送第一获取能力请求。第一获取能力请求为AVDT_Get_Capabilities_Req信令或AVDT_Get_All_Capabilities_Req信令。第一获取能力请求包括第一SEID,用于请求获取第一SEID对应的流端点的编解码能力;第一SEID为SEID列表中的其中一个SEID。响应于第一获取能力请求信息,第二蓝牙设备向第一蓝牙设备发送第一获取能力响应。第一获取能力响应为AVDT_Get_Capabilities_Rsp信令或AVDT_Get_All_Capabilities_Rsp信令。第一获取能力响应信息包括第一编解码能力。第一编解码能力为第一SEID对应的流端点的编解码能力。
需要说明的是,第一蓝牙设备可以为外接设备,第二蓝牙设备可以为电子设备,通常情况下,电子设备的编解码能力数量较多,外接设备的编解码能力数量较少。例如,电子设备(如手机)的编解码能力可以包括SBC、AAC、LDAC、APTX、APTX-HD、LHDC、LHDC_LL。外接设备(如车载终端)的编解码能力一般包括SBC和AAC。
基于该蓝牙设备中编解码能力的获取方法,在第一蓝牙设备(如车载终端)的编解码能力的数量小于第二蓝牙设备(如手机)的编解码能力的数量的情况下,在第一蓝牙设备和第二蓝牙设备成功配对后,第二蓝牙设备先发起流端点发现过程和获取能力过程,并记录下第二蓝牙设备中与第一蓝牙设备具有相同的codec能力的SEID;当第一蓝牙设备作为启动者INT,向第二蓝牙设备发起流端点发现过程和获取能力过程时,第二蓝牙设备可以将第二蓝牙设备中支持第一蓝牙设备的codec能力的SEID(即SEID列表),反馈给第一蓝牙设备,以减少第一蓝牙设备与第二蓝牙设备的交互次数,从而避免第二蓝牙设备在发起流连接的过程中,出现异常断开的情况,进而提高第一蓝牙设备与第二蓝牙设备在流连接过程中的稳定性和可靠性,提高用户体验。
在第一方面的一种可能的设计方式中,上述方法还可以包括:当第一蓝牙设备与第二蓝牙设备配对成功后,第二蓝牙设备获取第一蓝牙设备的编解码能力。
应理解,在第二蓝牙设备中,为了判断第一蓝牙设备的编解码能力是否小于第二蓝牙设备的编解码能力,则第二蓝牙设备可以先获取第一蓝牙设备的编解码能力。然后,第二蓝牙设备可以将第一蓝牙设备的编解码能力与第二蓝牙设备自身的编解码能力进行对比,以判断第一蓝牙设备的编解码能力与第二蓝牙设备的编解码能力的数量关系。
具体地,第二蓝牙设备获取第一蓝牙设备的编解码能力,可以包括:第二蓝牙设备向第一蓝牙设备发送第二流端点发现请求;第二流端点发现请求用于请求获取第一蓝牙设备的流端点。响应于第二流端点发现请求,第一蓝牙设备向第二蓝牙设备发送第二流端点发现响应;第二流端点发现响应包括第一蓝牙设备所有的流端点的SEID。响应于第二流端点发现响应,第二蓝牙设备向第一蓝牙设备发送第二获取能力请求;第二获取能力请求包括第二SEID,用于请求获取第二SEID对应的流端点的编解码能力;第二SEID为第一蓝牙设备所有的流端点的SEID中的其中一个SEID。响应于第二获取能力请求,第一蓝牙设备向第二蓝牙设备发送第二获取能力响应;第二获取能力响应包括第二编解码能力;第二编解码能力为第二SEID对应的流端点的编解码能力。
进一步地,上述方法还可以包括:若第一蓝牙设备的编解码能力的数量小于第二蓝牙设备的编解码能力的数量,则第二蓝牙设备根据第一蓝牙设备中流端点的编解码能力,确定SEID列表。
根据上述方法可知,SEID列表仅为第二电子设备中部分流端点对应的SEID。SEID列表中包括的SEID对应的流端点的编解码能力,与第一蓝牙设备中流端点的编解码能力相匹配。针对此种情况,在第二蓝牙设备获取了第一蓝牙设备的编解码能力之后,第二蓝牙设备可以根据第一蓝牙设备中流端点的编解码能力,确定SEID列表,以便在第一蓝牙设备请求获取第二蓝牙设备的流端点的过程中,且在第一蓝牙设备的编解码能力的数量小于第二蓝牙设备的编解码能力的数量的情况下,第二蓝牙设备向第一蓝牙设备发送SEID列表,以减少第一蓝牙设备向第二蓝牙设备发送获取能力请求的交互次数,避免第一蓝牙设备和第二蓝牙设备之间的异常断开。
具体地,第二蓝牙设备根据第一蓝牙设备的流端点的编解码能力,确定SEID列表,可以包括:第二蓝牙设备获取从第二蓝牙设备中获取第三SEID,以及第三SEID对应的流端点的编解码能力;第三SEID为第二蓝牙设备的流端点对应的SEID。若第三SEID对应的流端点的编解码能力,与第一蓝牙设备的流端点的编解码能力相匹配,则第二蓝牙设备将第三SEID添加至SEID列表中。第二蓝牙设备在确定SEID列表的过程中,第二蓝牙设备需要获取自身的SEID以及对应的编解码能力,以便于第一蓝牙设备的编解码能力进行对比,并将能够与第一蓝牙设备的编解码能力相匹配的流端点对应的SEID,添加至SEID列表中。由此确定的SEID列表中的SEID对应的流端点的编解码能力,能够与第一蓝牙设备的编解码能力完全匹配。
可选地,第二蓝牙设备根据第一蓝牙设备的流端点的编解码能力,确定SEID列表,可以包括:若SEID列表中的SEID数量超过设定的阈值,则第二蓝牙设备从SEID列表中删除部分SEID。应理解,上述方法中确定的SEID列表中的SEID数量可能依然较多,此时可以设定相应的阈值,如设定的阈值为3。当SIED列表中的SEID数量超过3时,再从SEID列表中删除部分SEID,以减少SEID列表中的SEID的数量。
可选地,第二蓝牙设备从SEID列表中删除的部分SEID可以包括:SEID列表中的第四SEID。第四SEID对应的流端点的编解码能力,与SEID列表中另一个SEID对应的流端点的编解码能力相同。在从SEID列表中删除部分SEID时,可以优先删除一下具有相同的编解码能力的流端点对应的SEID,避免减少SEID列表中的SEID对应的流端点支持的编解码能力总数,提高第一蓝牙设备与第二蓝牙设备之间建立流连接时的灵活性。
在第一方面的另一种可能的设计方式中,上述方法还可以包括:若第一蓝牙设备的流端点的编解码能力发生变化,则第二蓝牙设备根据第一蓝牙设备的流端点的编解码能力,重新确定SEID列表。应理解,在蓝牙设备的系统更新时,蓝牙设备的编解码能力也可能会发生变化,若第一蓝牙设备的流端点的编解码能力发生变化,则第二蓝牙设备可以重新获取第一蓝牙设备的流端点的编解码能力,并重新确定SEID列表。
具体地,第一蓝牙设备的编解码能力可以包括SBC、AAC、LDAC、APTX、APTX-HD、LHDC和LHDC_LL中的一种或多种。
具体地,第二蓝牙设备的编解码能力可以包括SBC、AAC、LDAC、APTX、APTX-HD、LHDC和LHDC_LL中的一种或多种。
第二方面,本申请提供一种电子设备。该电子设备包括一个或多个处理器、一个或多个存储器以及通信接口。其中,一个或多个存储器和通信接口与一个或多个处理器耦合,通信接口用于与其他通信设备进行无线通信,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,电子设备执行如第一方面极其任一种可能的设计方式的方法。
第三方面,本申请提供一种芯片系统,该芯片系统应用于包括存储器的电子设备。该芯片系统包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。该接口电路用于从存储器接收信号,并向处理器发送信号,该信号包括存储器中存储的计算机指令。当处理器执行计算机指令时,电子设备执行如第一方面及其任一种可能的设计方式的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的设计方式的方法。
第五方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行如第一方面及其任一种可能的设计方式的方法。
可以理解地,上述提供的第二方面所述的电子设备,第三方面所述的芯片系统,第四方面所述的计算机可读存储介质,第五方面所述的计算机程序产品所能达到的有益效果,可参考如第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为蓝牙中AVDTP协议的协议栈;
图2为两个蓝牙设备之间的流连接过程的过程示意图;
图3为两个蓝牙设备之间的音频流传输过程的过程示意图;
图4为本申请实施例提供的系统架构的简化示意图;
图5为本申请实施例提供的手机的结构示意图;
图6为现有技术中外接设备向手机发起流连接的流程图;
图7为图6中的外接设备向手机发起流端点发现过程的流程图;
图8为图6中的外接设备向手机发起获取能力过程的流程图;
图9为本申请实施例提供的一种车载终端向手机获取codec能力的方法流程图;
图10为本申请实施例提供的手机确定第二SEID列表的方法流程图;
图11为本申请实施例提供的另一种车载终端向手机获取codec能力的方法流程图;
图12为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
通常情况下,具有蓝牙功能的电子设备和外接设备之间,进行音频/视频(audio/vidieo,A/V)数据传输之前,需要进行配对连接。上述电子设备与外接设备也可以统称为蓝牙设备。目前,对于音频/视频的传输,较多的蓝牙设备均支持高级音频分发框架(advancedaudio distribution profile,A2DP),在该框架中,可以利用逻辑链路控制和适配协议(logical link control adaptation protocol,L2CAP)层建立异步无连接(asynchronousconnection-less,ACL)链路,ACL链路可以用来配置数据信道,通过ACL配置的数据信道,可以用来传输高质量的单声道或者立体声音频数据。
在蓝牙A2DP框架下,音频数据或视频数据采用音频/视频分发传输协议(audio/video distribution transport protocol,AVDTP)实现音频/视频的传输。如图1所示为蓝牙AVDTP协议的协议栈,在该AVDTP协议中定义了音频/视频(A/V)数据流的协商、建立以及传输的过程;还指定了在蓝牙设备间,通过音频/视频(A/V)信令进行数据交换,并定义了进行数据交换的信令消息格式,以及定义了在音频/视频分发应用程序中,通过L2CAP通道传输音频/视频(A/V)信令和音频/视频(A/V)数据流。
在AVDTP协议下,每次的音频/视频传输均需要建立流(stream)。流(即蓝牙音频/视频流)表示两个蓝牙设备之间的流媒体数据(音频或视频)的逻辑端到端连接。在传输流媒体数据时,流媒体数据会在源端(source,SRC)蓝牙设备通过编码器进行编码,然后将编码后的流媒体数据,传输至接收端(sink,SNK)蓝牙设备,接收端蓝牙设备再通过解码器对流媒体数据进行解码,实现流媒体数据的传输。
可以理解地,在两个蓝牙设备之间,可以包括至少两个过程,分别为流连接过程和流媒体数据传输过程。其中,在两个蓝牙设备的流连接过程中,发起请求的蓝牙设备为过程的启动者(initiator,INT),接收请求的蓝牙设备为过程的接收者(acceptor,ACP)。在两个蓝牙设备的流媒体数据传输过程中,发送流媒体数据的蓝牙设备为源端(SRC)蓝牙设备,接收流媒体数据的蓝牙设备为接收端(SNK)蓝牙设备。
如图2所示,一个流连接过程可以包括流端点发现过程(stream end pointdiscovery procedure)、获取能力过程(get capabilities procedure)、流配置过程(stream configuration procedure)、流建立过程(stream establishment procedure)、流开始过程(steam start procedure)、流挂起过程(stream suspend procedure)、流重新配置过程(steam reconfigure procedure)以及流释放过程(stream releaseprocedure)。
流端点发现过程:在两个蓝牙设备之间建立蓝牙连接后,两个蓝牙设备之间所传输的音频/视频数据流,是通过抽象的流端点(stream end point,SEP)发送或接收的。流端点SEP可以用来表示蓝牙设备的资源和能力。在一个蓝牙设备中可以具有多种资源和能力,如多种编解码(codec)能力,因此在一个蓝牙设备中可以具有多个流端点SEP,并且不同的流端点SEP可以通过流端点标识符(stream end point identifier,SEID)标识。
蓝牙设备A可以通过流端点发现过程,获取蓝牙设备B的所有流端点SEP对应的SEID。后续该蓝牙设备A根据蓝牙设备B的流端点SEP对应的SEID,可以获取蓝牙设备B支持的媒体类型以及codec能力。
获取能力过程:获取能力过程用于根据流端点发现过程获取到的每一个SEID,获取该SEID对应支持的codec能力。应理解,codec能力指的是该SEID对应的流端点SEP的编解码能力。
流配置过程:流配置过程用于根据蓝牙设备A的SEID和远端的蓝牙设备B的SEID,进行流配置。两个蓝牙设备完成流配置后,便可以建立流连接。应理解,在该流配置过程中,蓝牙设备A会选择蓝牙设备A中的一个SEID与蓝牙设备B中的一个SEID进行流配置,并且选择的蓝牙设备A的SEID对应的流端点SEP,和选择的蓝牙设备B的SEID对应的流端点SEP之间,应该支持相同的codec能力。此过程中,蓝牙设备A作为启动过程的设备,即启动者(initiator,INT);蓝牙设备B作为接受启动的设备,即接收者(acceptor,ACP)。
流建立过程:在流配置过程完成之后,流建立过程用于请求打开上述流配置过程中,配置的蓝牙设备A的流端点SEP和蓝牙设备B的流端点SEP,使蓝牙设备A和蓝牙设备B的流端点SEP均处于开启(open)状态,并在蓝牙设备A的流端点SEP与蓝牙设备B的流端点SEP之间建立新的传输通道,例如可以建立一个新的L2CAP通道,用于蓝牙设备A与蓝牙设备B之间的流媒体传输会话,以便在蓝牙设备A与蓝牙设备B之间传输流媒体数据包。
流开始过程:在流建立过程之后,流开始过程用于请求,在上述流建立过程中,处于开启状态的蓝牙设备A和蓝牙设备B的流端点SEP上,建立流媒体传输会话,使蓝牙设备A和蓝牙设备B的流端点均处于流媒体(streaming)状态,以启动流媒体数据包的传输。应理解,建立流媒体传输会话的请求可以由蓝牙设备A发起,也可以由蓝牙设备B发起。
流挂起过程:在某些情况下,例如,在蓝牙设备A与蓝牙设备B之间的流端点SEP处于流媒体(streaming)状态,若需要对蓝牙设备A和蓝牙设备B中的流端点进行重新配置,则需要将蓝牙设备A和蓝牙设备B的流端点SEP暂停,使蓝牙设备A和蓝牙设备B的流端点SEP处于开启状态,以便对蓝牙设备A和蓝牙设备B中的流端点进行重新配置。流挂起过程用于暂停蓝牙设备A和蓝牙设备B的流端点SEP,并使蓝牙设备A和蓝牙设备B的流端点SEP处于开启状态。
在执行流挂起过程时,可以通过蓝牙设备A或蓝牙设备B发起,发起流挂起过程的蓝牙设备成为流挂起过程中的启动者INT。此时,若启动者INT(如蓝牙设备A)的上层(UL)请求暂停流,启动者INT会向接收者ACP(如蓝牙设备B)发送暂停流请求命令,该暂停流请求命令中包含接收者ACP的SEID;当接收者ACP接收到暂停流请求命令,会暂停该命令中SEID对应的流端点SEP,使该流端点SEP处于开启状态,并将暂停流请求的响应发送给启动者INT;当启动者INT接收到暂停流请求的响应后,暂停启动者INT中的流端点SEP,使该流端点处于开启状态。
流重新配置过程:流重新配置过程用于,对蓝牙设备A和蓝牙设备B之间的流对应的流端点SEP,进行重新配置。流重新配置过程是在蓝牙设备A和蓝牙设备B的流端点SEP,均处于开启状态时执行。若蓝牙设备A和蓝牙设备B之间的流已经处于流开始过程,即蓝牙设备A和蓝牙设备B中,对应该流的流端点SEP处于流媒体状态,则需要先执行流挂起过程,使蓝牙设备A和蓝牙设备B中,对应该流的流端点SEP处于开启状态。当成功执行流挂起过程后,可以使用重新配置命令对蓝牙设备A和蓝牙设备B中,对应该流的流端点SEP重新配置。当成功执行流重新配置过程后,可以使用流开始过程,重新在蓝牙设备A的流端点SEP与蓝牙设备B的流端点SEP上,建立流媒体传输会话,使蓝牙设备A和蓝牙设备B的流端点,均处于流媒体(streaming)状态,以启动流媒体数据包的传输。
流释放过程:流释放过程用于,对蓝牙设备A和蓝牙设备B之间的流对应的流端点SEP进行关闭,并释放分配给该流端点SEP的缓冲区和资源。具体地,当蓝牙设备A与蓝牙设备B之间的流媒体传输会话结束,蓝牙设备A或蓝牙设备B可以通过蓝牙设备的上层(UL),发起流释放过程。发起流释放过程的蓝牙设备,成为流释放过程中的启动者INT。此时,启动者INT会向接收者ACP,发送指示流端点SEP(可通过SEID标识)关闭的信号;当接收者ACP接收到指示流端点SEP关闭的信号时,接收者ACP释放分配给对应的流端点SEP的缓冲区和资源;启动者INT接收到流端点SEP已释放的确认后,启动者INT释放分配给对应的流端点SEP的所有传输通道和资源。
需要说明的是,上述流连接过程中,流端点发现过程为可选过程。实际上,对于只有一个流端点的蓝牙设备,或者两个蓝牙设备之间重复的流配置过程均可以没有流端点发现过程。获取能力过程也为可选过程,例如,对于启动者INT,可能会猜测接收者ACP的能力并直接尝试流配置过程。
通过流端点发现过程和获取能力过程,可以确定两个蓝牙设备(如蓝牙设备A和蓝牙设备B)之间具有共同编解码能力的流端点,后续可以在具有共同编解码能力的流端点之间,建立流连接,以便音频/视频数据的传输。通常情况下,为了使音频/视频数据从源端(SRC)蓝牙设备传输至接收端(SNK)蓝牙设备后,接收端(SNK)蓝牙设备能够正确输出音频/视频数据,上述流连接过程中均需要经过流端点发现过程和获取能力过程。
如图3所示,以音频流为例,对音频流的传输过程进行说明。在源端(SRC)蓝牙设备,音频数据经过编码器进行编码,再经过AVDTP协议转换为音频流数据,并通过L2CAP通道传输至接收端(SNK)蓝牙设备。接收端(SNK)蓝牙设备接收到音频流数据后经过AVDTP协议解析,获取编码后的音频数据,然后通过解码器解码得到解码后音频数据。
图4示出的是可以应用本申请实施例的系统架构的简化示意图。如图4所示,该系统架构可以包括:电子设备和外接设备。此处的电子设备可以是图2所示的蓝牙设备A,也可以是图3所示的源端(SRC)蓝牙设备。外接设备可以是图2所示的蓝牙设备B,也可以是图3所示的接收端(SNK)蓝牙设备。
其中,电子设备,指的是支持通过无线通信协议与外接设备建立连接的设备。在具体实现中,该电子设备可以是桌面型、膝上型、平板电脑、手持计算机、手机、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(Personal Digital Assistant,PDA)、电视机、VR设备、AR设备等等。作为一种示例,图4中以电子设备是手机为例示出。
外接设备,指的是支持通过无线通信协议与电子设备建立连接的设备。在具体实现中,外接设备可以是可穿戴设备、智能眼镜、智能手表、键盘、音响、打印机、智能家居设备、车辆、车载终端、inkcase、耳机、手环等等。电子设备和外接设备两种设备可以互换。智能家居设备可以是饮水机、空调、冰箱等等。作为一种示例,图4中外接设备是车载终端为例示出。
为了便于理解,在本申请实施例中以电子设备为手机为例进行说明。下面结合附图对手机的各个构成部件进行具体的介绍:
如图5所示,手机可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对手机的具体限定。在本申请另一些实施例中,手机可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对手机的结构限定。在本申请另一些实施例中,手机也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
手机的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
其中,天线1和天线2用于发射和接收电磁波信号。移动通信模块150可以提供应用在手机上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在手机上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,手机的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得手机可以通过无线通信技术与网络以及其他设备通信。例如,在本申请实施例中,手机可以利用无线通信模块160,通过无线通信技术,如蓝牙(BT)与外接设备(比如,车载终端)建立无线连接。基于建立的无线连接,手机可以向外接设备发送语音数据,还可以接收来自外接设备的语音数据。
手机可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
在本申请实施例中,当手机与外接设备(如车载终端)建立了无线连接时,车载终端可以作为手机的音频输入/输出设备使用。示例性的,音频模块170可以接收无线通信模块160传递的音频电信号,实现通过车载终端接听电话、播放音乐等功能。例如,在用户打电话的过程中,车载终端可以采集用户的声音信号,并转换为音频电信号后发送给手机的无线通信模块160。无线通信模块160将该音频电信号传输给音频模块170。音频模块170可以将接收到的音频电信号转换为数字音频信号,并进行编码后传递至移动通信模块150。由移动通信模块150传输至通话对端设备,以实现通话。又例如,用户在使用手机的媒体播放器播放音乐时,应用处理器可以将媒体播放器播放的音乐对应的音频电信号传输至音频模块170。由音频模块170将该音频电信号传输至无线通信模块160。无线通信模块160可以将音频电信号发送给车载终端,以便车载终端将该音频电信号转换为声音信号后播放。
示例性地,在图4所示的系统架构中,若手机使用车载终端的蓝牙听音乐,则手机作为蓝牙A2DP架构中的源端(SRC)蓝牙设备使用。通常情况下,为了对各种蓝牙音频外接设备的编解码(codec)能力进行支持,手机一般都会支持较多的编解码方式。
例如,安卓类手机可以支持子带编码(sub-band coding,SBC)、高级音频编码(advanced audio coding,AAC)、LDAC、APTX、APTX-HD,高音质蓝牙编解码(low-latencyhi-definition audio codec,LHDC)、LHDC_LL等多种编码器,且手机厂商也在不断地增加新的编码器以配合部分外设,支持更好的音质体验。外接设备支持的解码器一般较少,如车载终端一般仅支持SBC,高端车载终端可以选择性支持AAC;耳机一般支持SBC和AAC,高端耳机可以选择性支持LDAC和APTX。
实际使用过程中,流连接的启动者INT可以是手机,也可以是外接设备(如车载终端)。当外接设备发起流连接时,通过流端点发现过程,外接设备可以获取到手机支持的多个流端点SEP(通过SEID标识),然后外接设备可以通过获取能力过程,依次获取每一个SEID对应的codec能力。
在一些实施例中,以外接设备作为启动者INT,手机作为接收者ACP为例,介绍本申请实施例的方法。外接设备向手机启动流连接的过程,是通过一对互连设备(即外接设备与手机互连)之间的ACL连接实现的。如图6所示,流连接过程包括如下步骤:
S601,外接设备向手机发送流端点发现请求。
如图7所示,外接设备向手机发送流端点发现请求(AVDT_Discover_Req)是由外接设备的上层(upper layer,UL)发送的。当外接设备的AVDTP协议层接收到上层发送过来的流端点发现请求后,将流端点发现命令(AVDTP_Discover_CMD)发送到手机的AVDTP协议层。当手机的AVDTP协议层接收到流端点发现命令后,手机的AVDTP协议层再将流端点发现指示(AVDT_Discover_Ind)传递到手机的上层。
可以理解的是,上述流端点发现命令(AVDTP_Discover_CMD)的消息格式,如下表1所示:
表1
其中,信号头部包括事务标签(transaction label)、封包类型(packet type)以及消息类型(message type)。
事务标签:对于启动者INT的每个执行的事务,可以通过事务标签来表示,其长度为4位(bit)。接收者ACP响应的消息格式中的事务标签,需与接收者ACP接收的消息的事务标签一致。
封包类型:当信令消息的大小超过信道要求的最大传输单元(maximumtransmission unit,MTU)时,发信方需要将消息进行拆分。封包类型可以指示信道消息是由单个数据包或多个数据包组成。在多个数据包的情况下,封包类型还可以指示数据包是开始数据包(start packet)、继续数据包(continue packet)或结束数据包(end packet)。
消息类型:用于指定发送的消息是命令或命令的响应。命令的响应数据包中,消息类型还用于指示接收者ACP对命令响应的结果(如一般拒绝,接受响应或拒绝响应)。
S602,手机向外接设备发送流端点发现响应。
其中,流端点发现响应中包括手机中的所有的SEID数据。
如图7所示,当手机的上层处理完成手机的AVDTP协议层传递的流端点发现指示(AVDT_Discover_Ind)后,手机的上层会将携带所有的SEID数据的数据包,即流端点发现响应(AVDT_Discover_RSP),发送回手机的AVDTP协议层。手机的AVDTP协议层再将流端点发现响应(AVDT_Discover_RSP)发送至外接设备的AVDTP协议层。外接设备的AVDTP协议层接收到流端点发现响应后,会以流端点发现确认(AVDT_Discover_Cfm)的形式发送回外接设备的上层。此时,外接设备则获取到手机中的所有的SEID数据。
可以理解的是,流端点发现响应是对上述流端点发现命令的响应。在流端点发现响应的消息中包含了接收者ACP(此处为手机)支持的所有的流端点SEP的SEID信息,并且在流端点发现响应的消息中至少应该包括一个流端点SEP的SEID信息。
上述流端点发现响应的消息格式,如下表2所示:
表2
其中,媒体类型可以是音频或视频。
S603,外接设备向手机发送获取能力请求。
其中,获取能力请求中包括接收者ACP(即手机)的SEID。此时,启动者INT(即外接设备)希望获取的是,接收者ACP(即手机)对应的SEID的codec能力。
如图8所示,外接设备向手机发送获取能力请求(AVDT_Get_Capabilities_Req)是由外接设备的上层(upper layer,UL)发送的。当外接设备的AVDTP协议层接收到上层发送过来的获取能力请求后,将携带有ACP的SEID信息的获取能力命令(AVDTP_Get_Capabilities_CMD)发送到手机的AVDTP协议层。当手机的AVDTP协议层接收到获取能力命令后,手机的AVDTP协议层再将获取能力指示(AVDT_Get_Capabilities_Ind)传递到手机的上层。
可以理解的是,上述获取能力命令(AVDT_Get_Capabilities_CMD)的消息格式,如下表3所示:
表3
其中,ACP SEID字段用于指示需要获取codec能力的SEID。
S604,手机向外接设备发送获取能力响应。
其中,获取能力响应中包括codec能力信息。该codec能力信息对应于上述获取能力请求信息中的接收者ACP(即手机)的SEID。
如图8所示,当手机的上层处理完成手机的AVDTP协议层传递的获取能力指示(AVDT_Get_Capabilities_Ind)后,手机的上层会将携带SEID的codec能力的数据包,即获取能力响应(AVDT_Get_Capabilities_RSP),发送回手机的AVDTP协议层。手机的AVDTP协议层再将获取能力响应(AVDT_Get_Capabilities_RSP)发送至外接设备的AVDTP协议层。外接设备的AVDTP协议层接收到获取能力响应后,会以获取能力确认(AVDT_Get_Capabilities_Cfm)的形式发送回外接设备的上层。此时,外接设备则获取到手机中对应的SEID的codec能力。
可以理解的是,上述获取能力响应(AVDT_Get_Capabilities_RSP)的消息格式,如下表4所示:
表4
其中,上表中的服务能力可以包括编解码能力,即codec能力。对于codec能力具有如下表5所示的消息格式:
表5
其中,消息中携带的媒体编解码能力,即为手机向外接设备发送的关于某个SEID的codec能力。
S605,外接设备向手机发送流配置请求。
其中,流配置请求中包括启动者INT(即外接设备)的SEID和接收者ACP(即手机)的SEID。
当获取能力过程结束后,外接设备可以向手机请求执行流配置过程。与流端点发现过程和获取能力过程类似,流配置过程中,外接设备的上层发送流配置请求(AVDT_Set_Configuration_Req),当外接设备的AVDTP协议层接收到上层发送过来的流配置请求后,将携带有INT的SEID信息和ACP的SEID信息的流配置命令(AVDTP_Set_Configuration_CMD),发送到手机的AVDTP协议层。当手机的AVDTP协议层接收到流配置命令后,手机的AVDTP协议层再将流配置指示(AVDT_Set_Configuration_Ind)传递到手机的上层。
可以理解的是,上述流配置命令(AVDTP_Get_Capabilities_CMD)的消息格式,如下表6所示:
表6
其中,ACP SEID和INT SEID是具有至少一个相同codec能力的流端点SEP的SEID,可以通过上述的流端点发现过程和获取能力过程来获知。
当手机的上层处理完成手机的AVDTP协议层传递的流配置指示(AVDT_Set_Configuration_Ind)后,手机的上层会将流配置响应(AVDT_Set_Configuration_RSP),发送回手机的AVDTP协议层。手机的AVDTP协议层执行流配置动作后,再将流配置响应(AVDT_Set_Configuration_RSP)发送至外接设备的AVDTP协议层。外接设备的AVDTP协议层接收到流配置响应后执行流配置动作,并以流配置确认(AVDT_Set_Capabilities_Cfm)的形式发送回外接设备的上层。此时,外接设备完成与手机之间的流配置。
可以理解的是,上述流配置响应与上述流配置命令相对应,因此,流配置响应(AVDT_Set_Configuration_RSP)的消息格式,如下表7所示:
表7
需要说明的是,在上述获取能力过程中(图6中的S603和S604),由于手机支持的codec能力较多,手机反馈给外接设备的SEID的数量也较多,且外接设备每次只能查询手机的其中一个SEID的codec能力,因此外接设备需要经过多次重复的操作(即重复S603和S604),才能够获取手机中所有SEID的codec能力。但是,由于外接设备自身的问题,例如内存有限,又例如解析能力有限,外接设备在获取到手机部分SEID的codec能力后,会出现异常断开的情况,使得外接设备与手机的流连接过程不能继续。
为解决外接设备在获取电子设备的codec能力的过程中,出现异常断开的情况,本申请实施例提供一种蓝牙设备中codec能力的获取方法,在电子设备和外接设备成功配对后,电子设备先发起流端点发现过程和获取能力过程,并记录下电子设备中,与外接设备具有相同的codec能力的SEID;当外接设备作为启动者INT,向电子设备发起流端点发现过程和获取能力过程时,电子设备可以将电子设备中支持外接设备的codec能力的SEID,反馈给外接设备,以减少外接设备与电子设备的交互次数,从而避免外接设备在发起流连接的过程中,出现异常断开的情况,进而提高电子设备与外接设备在流连接过程中的稳定性和可靠性,提高用户体验。
上文提到的蓝牙设备中codec能力的获取方法,适用于外接设备获取电子设备的codec能力。为了便于本领域技术人员的理解,在本申请实施例中,以电子设备(即第二蓝牙设备)为手机,外接设备(即第一蓝牙设备)为车载终端为例进行描述。
在一些实施例中,手机与车载终端首次蓝牙配对成功后,也即手机与车载终端之间成功建立异步无连接ACL链路,先由手机向外接设备发起流端点发现过程和获取能力过程,如图9所示,对于上述的codec能力的获取方法,可以包括以下步骤:
S901-1,手机向车载终端发送第二流端点发现请求。
其中,第二流端点发现请求(即AVDT_Discover_Req)用于请求获取车载终端的流端点SEP。
S901-2,车载终端向手机发送第二流端点发现响应。
当车载终端接收到上述第二流端点发现请求后,可以将第二流端点发现响应(即AVDT_Discover_RSP)发送给手机。上述第一流端点发现响应中包括车载终端的所有流端点SEP对应的SEID。
示例性地,假设车载终端具有3个流端点,则第一流端点发现响应中可以包括3个流端点的SEID,分别是SEID=1、SEID=2、SEID=3,以及3个流端点是否使用(in use)等信息,具体如下表8所示:
表8
S901-3,手机向车载终端发送第二获取能力请求。
其中,第二获取能力请求(即AVDT_Get_Capabilities_Req)中包括第二SEID,用于请求获取第二SEID对应的流端点的编解码能力;第二SEID为车载终端的其中一个流端点SEP对应的SEID。例如,若手机向车载终端获取SEID=1的流端点的codec能力,则第一获取能力请求信息中对应的SEID为000001。
S901-4,车载终端向手机发送第二获取能力响应。
当车载终端接收到来自手机的第二获取能力请求时,车载终端可以向手机发送第二获取能力响应。其中第二获取能力响应(即AVDT_Get_Capabilities_Rsp)包括第二SEID对应的流端点的codec能力。例如,若手机向车载终端查询SEID=1的流端点的codec能力,则车载向手机回复SEID=1的流端点支持的codec能力,如AAC。
重复执行S901-3和S901-4,可以获取到车载终端中的所有的流端点SEP的codec能力。以上述3个流端点为例,假设3个流端点对应的codec能力如下表9所示:
表9
序号 | 流端点SEID | Codec能力 |
1 | 000001 | SBC |
2 | 000010 | AAC |
3 | 000011 | SBC |
根据表11可知,车载终端可以支持SBC和AAC两种codec能力。当手机获取了车载终端的codec能力之后,可以将车载终端支持的codec能力进行记录,例如,可以记录在车载终端codec能力列表中。此时,车载终端codec能力列表中包括SBC和AAC两种codec能力。
示例性地,假设手机中包括8个流端点SEP,每个流端点SEP对应的codec能力如下表10所示:
表10
序号 | 流端点SEID | codec能力 |
1 | 000001 | SBC |
2 | 000010 | AAC |
3 | 000011 | LDAC |
4 | 000100 | AAC |
5 | 000101 | APTX |
6 | 000110 | APTX-HD |
7 | 000111 | LHDC |
8 | 001000 | LHDC-LL |
当手机获取到车载终端的所有codec能力之后,手机可以确定手机的编解码能力与车载终端的编解码能力的差异情况,如上述示例,手机能够支持7种codec能力,即SBC、AAC、LDAC、APTX、APTX-HD、LHDC和LHDC-LL,而车载终端仅能够支持2种codec能力,即SBC和AAC。此时,手机可以确定手机能够支持的codec能力的数量与车载终端能够支持的codec能力的数量差异较大,即车载终端的codec能力的数量小于手机的codec能力的数量。
此时,为了避免后续车载终端向手机发起获取能力过程时,出现异常断开的情况,可以将手机中所有的流端点SEP对应的SEID作为第一SEID列表(如图10所示的信息),并且在第一SEID列表中筛选出第二SEID列表,该第二SEID列表中的SEID对应的流端点的codec能力,与车载终端的codec能力相匹配。当后续车载终端向手机发起流端点发现过程时,手机仅向车载终端发送第二SEID列表(即SEID列表),以便减少车载终端向手机发起获取能力过程中的交互次数,避免异常断开情况的出现。
对于如何从第一SEID列表中筛选出第二SEID列表,可以采用下述S901-5步骤中的方法,具体如下:
S901-5,手机确定第二SEID列表。
当手机获取了车载终端的codec能力之后,手机可以根据车载终端的codec能力确定第二SEID列表。如图10所示,手机确定第二SEID列表可以采用如下步骤:
步骤一:手机获取第三SEID以及第三SEID对应的流端点的codec能力。其中,第三SEID为第一SEID列表中的其中一个SEID。
如上述表10所示,第一SEID列表中可以包括8个SEID,每次获取其中的一个SEID,例如此次获取到SEID为000001。第一SEID列表中每个SEID均对应一个codec能力,根据每个SEID可以获取到每个SEID对应的codec能力。例如,SEID为000001的流端点,其codec能力为SBC。
步骤二:判断第三SEID对应的流端点的codec能力是否与车载终端的流端点的codec能力相匹配。
在步骤二中获取了第三SEID对应的流端点的codec能力之后,可以将该第三SEID对应的流端点的codec能力与车载终端支持的codec能力进行对比,例如可以将第三SEID对应的流端点的codec能力与车载终端codec能力列表进行对比,判断步骤一获取的codec能力是否与车载终端的codec能力相匹配。若该第三SEID对应的流端点SEP的codec能力,车载终端也能够支持,则该第三SEID对应的流端点SEP的codec能力与车载终端的codec能力相匹配,则可以执行步骤三将该第三SEID添加到第二SEID列表中。
步骤三:将第三SEID添加到第二SEID列表中。
示例性地,请参考表10,第一个流端点SEP,该流端点SEID为000001,该流端点支持的codec能力为SBC,并且车载终端也可以支持SBC,可以将第一个流端点SEP的流端点SEID添加到第二SEID列表中。又例如,第二个流端点SEP,该流端点SEID为000010,该流端点支持的codec能力为AAC,并且车载终端也可以支持AAC,因此可以将第二个流端点SEP的流端点SEID添加到第二SEID列表中。再例如,第三个流端点SEP,该流端点SEID为000011,该流端点支持的codec能力为LDAC,并且车载终端不支持LDAC,因此无需将第三个流端点SEP的流端点SEID添加到第二SEID列表中。
依次循环上述步骤一至步骤三,可以从第一SEID列表中,筛选得到第二SEID列表,如下表11所示:
表11
序号 | 流端点SEID | Codec能力 |
1 | 000001 | SBC |
2 | 000010 | AAC |
4 | 000100 | AAC |
一些实施例中,当手机与车载终端配对成功后,车载终端作为启动者INT向手机发起流端点发现过程和获取能力过程时,可以执行如下的步骤:
S901,车载终端向手机发送第一流端点发现请求。
其中,第一流端点发现请求(即AVDT_Discover_Req)用于请求获取手机的流端点SEP。
S902,手机向车载终端发送第一流端点发现响应;其中,第一流端点发现响应包括第二SEID列表。
需要说明的是,当手机接收到来自车载终端的第一流端点发现请求,手机可以确定车载终端与手机的codec能力情况,在车载终端的codec能力的数量小于手机的codec能力的数量的情况下,将包括第二SEID列表(即SEID列表)的第一流端点发现响应发送给车载终端。根据如上步骤,第二SEID列表包括手机中的部分流端点对应的SEID,并且第二SEID列表中包括的SEID对应的流端点的codec能力,与手机中流端点的codec能力相匹配。在此情况下,可以减少后续获取能力过程中的需要获取能力的SEID数量,以便减少车载终端与手机的交互次数,避免车载终端与手机出现异常断开的情况。
可以理解地,在车载终端的codec能力的数量大于或等于手机的codec能力的数量的情况下,则手机依然可以将包括第一SEID列表的第一流端点发现响应发送给车载终端,以保证具有足够的流端点以供流连接时使用。
例如,根据如表11中的第二SEID列表,车载终端可以从第一流端点发现响应中,获取到如下表12所示的信息:
表12
字段 | 数据 | 描述 |
第一个SEID | 000001 | 第一个流端点的SEID=1 |
是否使用 | 0 | 未使用 |
SEID | 000010 | 流端点的SEID=2 |
是否使用 | 0 | 未使用 |
SEID | 000100 | 流端点的SEID=4 |
是否使用 | 0 | 未使用 |
S903,车载终端向手机发送第一获取能力请求。
当车载终端接收到来自手机的第一流端点发现响应时,也即车载终端接收到来自手机的第二SEID列表时,车载终端向手机发送第一获取能力请求。其中,第一获取能力请求包括第一SEID,用于请求获取第一SEID对应的流端点的编解码能力。此处第一SEID为第二SEID列表中的SEID。
S904,手机向车载终端发送第一获取能力响应。
当手机接收到来自手机的包括第一SEID的第一获取获取能力请求时,手机向车载终端发送第一获取能力响应,并且,第二获取能力响应包括第一SEID对应的流端点的codec能力。
应理解,步骤S903和S904需执行多次,直至S902步骤中获取的第二SEID列表中的SEID对应的流端点,均获取到对应的codec能力为止。
可以理解地,若车载终端在步骤S902获取的是如表10所示的第一SEID列表,则车载终端需要重复执行8次步骤S903和S904。相应地,若车载终端在步骤S902获取的是如表11所示的第二SEID列表,则车载终端仅需要重复执行3次步骤S903和S904即可。如此,可以减少车载终端与手机在获取能力过程中的交互次数,从而避免车载终端在发起流连接的过程中,出现异常断开的情况,进而提高手机与车载终端在流连接过程中的稳定性和可靠性,提高用户体验。
在另一些实施例中,手机与车载终端首次蓝牙配对成功后,先由外接设备向手机发起流端点发现过程和获取能力过程,如图11所示,对于上述的codec能力的获取方法,可以先执行上述的S901、S902、S903和S904步骤。
需要说明的是,在此过程中,手机中并不存在第二SEID列表。因此,在S902步骤中,手机向车载终端发送的第一流端点发现响应包括:手机中所有的流端点SEP对应的SEID信息,即第一SEID列表。
例如,若第二流端点发现响应包括如表10所示的第一SEID列表,则从第一流端点发现响应中可以获取到如下表13所示的信息:
表13
此时,在执行S903和S904步骤时需要执行8次交互。由于车载终端自身的问题,例如内存有限,又例如解析能力有限,车载终端与手机的多次交互过程中,可能出现异常断开的情况。
若车载终端在执行S903和S904的过程中,出现异常断开的情况,则车载终端与手机在下一次成功配对后,先执行上述的S901-1、S901-2、S901-3、S901-4和S901-5步骤,先在手机中建立第二SEID列表,再执行S901、S902、S903和S904步骤,以减少在S902步骤中手机发送给车载终端的SEID的数量,从而可以减少车载终端与手机在获取能力过程中的交互次数,避免车载终端在发起流连接的过程中,出现异常断开的情况,进而提高手机与车载终端在流连接过程中的稳定性和可靠性,提高用户体验。
在一些实施例中,车载终端的codec能力可能会发生变化,如车载终端的系统更新。由于后续手机依然可能作为启动者INT向车载终端发起流连接,因此手机向车载终端发起流端点发现过程以及获取能力过程时,均执行上述的S901-1、S901-2、S901-3、S901-4以及S901-5步骤,手机根据车载终端的流端点的codec能力,重新确定第二SEID列表,以便在车载终端的codec能力更新时,及时更新手机中的第二SEID列表。
当然,为了简化程序并节约功耗,当后续手机作为启动者INT向车载终端发起流端点发现过程以及获取能力过程时,可以仅执行S901-1、S901-2、S901-3和S901-4步骤,将手机和车载终端均支持的codec能力记录在车载终端codec能力列表中。若车载终端codec能力列表发生变化,再执行S901-5步骤,以使手机根据车载终端的流端点的codec能力,重新确定第二SEID列表。
示例性地,假设车载终端的系统更新后,增加了codec能力LDAC。在车载终端中流端点SEP与codec能力具有如下表14的对应关系:
表14
序号 | 流端点SEID | Codec能力 |
1 | 000001 | SBC |
2 | 000010 | AAC |
3 | 000011 | SBC |
4 | 000100 | LDAC |
经过S901-1、S901-2、S901-3和S901-4步骤之后,车载终端codec能力列表发生变化,即车载终端codec能力列表中包括SBC、AAC和LDAC三种codec能力。执行S901-5步骤后,手机中的第二SEID列表也会发生变化,如表15所示:
表15
序号 | 流端点SEID | Codec能力 |
1 | 000001 | SBC |
2 | 000010 | AAC |
3 | 000011 | LDAC |
4 | 000100 | AAC |
在一些实施例中,第二SEID列表中的SEID仍然存在数量较多的情况,如上述的表15。此时,可以比较第一列表中SEID的数量是否超过设定的阈值。若超过,则手机可以选择将第一列表中的部分SEID发送给车载终端,例如可以选择前N个SEID反馈,N可以小于或等于设定的阈值,如假设设定的阈值为3,此时可以选择第二SEID列表中的前3个SEID,发送给车载终端;又例如,可以剔除一些具有相同的codec能力的流端点,如表15中的SEID为000010和000100的流端点,它们的codec能力均为AAC,那么此时可以剔除掉SEID为000100的流端点,只将SEID为000001、000010和000011的流端点发送至车载终端。
此外,若第二SEID列表中SEID的数量超过设定的阈值,手机执行完成S901-5步骤之后,还可以对手机中记录在车载终端codec能力列表中的codec能力进行分析,去掉一些不太常用的codec能力,如LDAC,然后再执行重新执行S901-5步骤,以减少第二SEID列表中的SEID的数量。
本申请实施例还提供一种电子设备,该电子设备可以包括:一个或多个处理器、一个或多个存储器,以及通信接口。一个或多个存储器和通信接口与一个或多个处理器耦合,通信接口用于与其他通信设备进行无线通信,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,可使得电子设备执行上述实施例中手机执行的各个步骤或车载终端执行的各个步骤。
本申请实施例还提供一种芯片系统,该芯片系统可以应用于前述实施例中的电子设备。如图12所示,该芯片系统包括至少一个处理器1201和至少一个接口电路1202。该处理器1201可以是上述电子设备中的处理器。处理器1201和接口电路1202可通过线路互联。该处理器1201可以通过接口电路1202从上述电子设备的存储器接收并执行计算机指令。当计算机指令被处理器1201执行时,可使得电子设备执行上述实施例中手机执行的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在上述移动终端上运行时,使得该移动终端执行上述方法实施例中移动终端执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中移动终端执行的各个功能或者步骤。该计算机可以是上述移动终端。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种蓝牙设备中编解码能力的获取方法,其特征在于,包括:
当第一蓝牙设备与第二蓝牙设备配对成功后,所述第一蓝牙设备向所述第二蓝牙设备发送第一流端点发现请求;所述流端点发现请求为AVDT_Discover_Req信令,用于请求获取所述第二蓝牙设备的流端点信息;
响应于所述第一流端点发现请求,所述第二蓝牙设备向所述第一蓝牙设备发送第一流端点发现响应;所述第一流端点发现响应为AVDT_Discover_Rsp信令;其中,在所述第一蓝牙设备的编解码能力的数量小于所述第二蓝牙设备的编解码能力的数量的情况下,所述第一流端点发现响应包括SEID列表;所述SEID列表为所述第二蓝牙设备中的部分流端点对应的SEID;所述SEID列表中包括的SEID对应的流端点的编解码能力,与所述第一蓝牙设备中流端点的编解码能力相匹配;
响应于所述第一流端点发现响应,所述第一蓝牙设备向所述第二蓝牙设备发送第一获取能力请求;所述第一获取能力请求为AVDT_Get_Capabilities_Req信令或AVDT_Get_All_Capabilities_Req信令;所述第一获取能力请求包括第一SEID,用于请求获取所述第一SEID对应的流端点的编解码能力;所述第一SEID为所述SEID列表中的其中一个SEID;
响应于所述第一获取能力请求信息,所述第二蓝牙设备向所述第一蓝牙设备发送第一获取能力响应;所述第一获取能力响应为AVDT_Get_Capabilities_Rsp信令或AVDT_Get_All_Capabilities_Rsp信令;所述第一获取能力响应信息包括第一编解码能力;所述第一编解码能力为所述第一SEID对应的流端点的编解码能力。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一蓝牙设备与所述第二蓝牙设备配对成功后,所述第二蓝牙设备获取所述第一蓝牙设备的编解码能力。
3.根据权利要求2所述的方法,其特征在于,所述第二蓝牙设备获取所述第一蓝牙设备的编解码能力,包括:
所述第二蓝牙设备向所述第一蓝牙设备发送第二流端点发现请求;所述第二流端点发现请求用于请求获取所述第一蓝牙设备的流端点;
响应于所述第二流端点发现请求,所述第一蓝牙设备向所述第二蓝牙设备发送第二流端点发现响应;所述第二流端点发现响应包括所述第一蓝牙设备所有的流端点的SEID;
响应于所述第二流端点发现响应,所述第二蓝牙设备向所述第一蓝牙设备发送第二获取能力请求;所述第二获取能力请求包括第二SEID,用于请求获取所述第二SEID对应的流端点的编解码能力;所述第二SEID为所述第一蓝牙设备所有的流端点的SEID中的其中一个SEID;
响应于所述第二获取能力请求,所述第一蓝牙设备向所述第二蓝牙设备发送第二获取能力响应;所述第二获取能力响应包括第二编解码能力;所述第二编解码能力为所述第二SEID对应的流端点的编解码能力。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
若所述第一蓝牙设备的编解码能力的数量,小于所述第二蓝牙设备的编解码能力的数量,则所述第二蓝牙设备根据所述第一蓝牙设备中流端点的编解码能力,确定所述SEID列表。
5.根据权利要求4所述的方法,其特征在于,所述第二蓝牙设备根据所述第一蓝牙设备的流端点的编解码能力,确定所述SEID列表,包括:
所述第二蓝牙设备从所述第二蓝牙设备中获取第三SEID,以及第三SEID对应的流端点的编解码能力;所述第三SEID为所述第二蓝牙设备的流端点对应的SEID;
若所述第三SEID对应的流端点的编解码能力,与所述第一蓝牙设备的流端点的编解码能力相匹配,则所述第二蓝牙设备将所述第三SEID添加至SEID列表中。
6.根据权利要求4或5所述的方法,其特征在于,所述第二蓝牙设备根据所述第一蓝牙设备的流端点的编解码能力,确定所述SEID列表,包括:
若所述SEID列表中的SEID数量超过设定的阈值,则所述第二蓝牙设备从所述SEID列表中删除部分SEID。
7.根据权利要求6所述的方法,其特征在于,所述第二蓝牙设备从所述SEID列表中删除的部分SEID,包括:所述SEID列表中的第四SEID;所述第四SEID对应的流端点的编解码能力,与所述SEID列表中另一个SEID对应的流端点的编解码能力相同。
8.根据权利要求2至7任一项所述的方法,其特征在于,所述方法还包括:
若所述第一蓝牙设备的流端点的编解码能力发生变化,则所述第二蓝牙设备根据所述第一蓝牙设备的流端点的编解码能力,重新确定所述SEID列表。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述第一蓝牙设备的编解码能力包括SBC、AAC、LDAC、APTX、APTX-HD、LHDC和LHDC_LL中的一种或多种。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述第二蓝牙设备的编解码能力包括SBC、AAC、LDAC、APTX、APTX-HD、LHDC和LHDC_LL中的一种或多种。
11.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器、一个或多个存储器以及通信接口;
所述一个或多个存储器和所述通信接口与所述一个或多个处理器耦合,所述通信接口用于与其他通信设备进行无线通信,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,所述电子设备执行如权利要求1-10任意一项所述的方法。
12.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-10中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110437214.5A CN113316129B (zh) | 2021-04-22 | 2021-04-22 | 一种蓝牙设备中编解码能力的获取方法及电子设备 |
PCT/CN2022/071884 WO2022222556A1 (zh) | 2021-04-22 | 2022-01-13 | 一种蓝牙设备中编解码能力的获取方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110437214.5A CN113316129B (zh) | 2021-04-22 | 2021-04-22 | 一种蓝牙设备中编解码能力的获取方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113316129A true CN113316129A (zh) | 2021-08-27 |
CN113316129B CN113316129B (zh) | 2022-05-20 |
Family
ID=77372590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110437214.5A Active CN113316129B (zh) | 2021-04-22 | 2021-04-22 | 一种蓝牙设备中编解码能力的获取方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113316129B (zh) |
WO (1) | WO2022222556A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022222556A1 (zh) * | 2021-04-22 | 2022-10-27 | 荣耀终端有限公司 | 一种蓝牙设备中编解码能力的获取方法及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243159B1 (en) * | 2003-03-14 | 2007-07-10 | Cisco Technology, Inc. | On demand capability exchange |
CN103095653A (zh) * | 2011-11-02 | 2013-05-08 | 中国移动通信集团公司 | 在多个通信端点之间切换媒体能力的方法与装置 |
US20160142865A1 (en) * | 2013-06-20 | 2016-05-19 | Lg Electronics Inc. | Method and apparatus for reproducing multimedia contents using bluetooth in wireless communication system |
US20180241787A1 (en) * | 2015-08-10 | 2018-08-23 | Samsung Electronics Co., Ltd. | Transmission device and method for controlling same |
US20180279050A1 (en) * | 2017-03-24 | 2018-09-27 | Samsung Electronics Co., Ltd. | Method and electronic device for transmitting audio data to multiple external devices |
CN109479113A (zh) * | 2016-07-21 | 2019-03-15 | 高通股份有限公司 | 用于在多媒体通信中使用压缩并行编解码器的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286770B (zh) * | 2007-04-09 | 2011-07-06 | 艾威梯科技(北京)有限公司 | 自动配置蓝牙a2dp传输音频编码格式的方法和系统 |
US9008580B2 (en) * | 2012-06-10 | 2015-04-14 | Apple Inc. | Configuring a codec for communicating audio data using a Bluetooth network connection |
CN104219484B (zh) * | 2013-06-01 | 2019-05-31 | 中兴通讯股份有限公司 | 远程呈现端点的能力交互方法及装置 |
CN111683357B (zh) * | 2020-05-25 | 2023-06-30 | 杭州寰星电子科技有限公司 | 低功耗蓝牙传输音频的方法、装置和设备 |
CN111885575B (zh) * | 2020-09-28 | 2021-02-26 | 深圳市汇顶科技股份有限公司 | 流端点控制方法、电子设备以及存储介质 |
CN113316129B (zh) * | 2021-04-22 | 2022-05-20 | 荣耀终端有限公司 | 一种蓝牙设备中编解码能力的获取方法及电子设备 |
-
2021
- 2021-04-22 CN CN202110437214.5A patent/CN113316129B/zh active Active
-
2022
- 2022-01-13 WO PCT/CN2022/071884 patent/WO2022222556A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243159B1 (en) * | 2003-03-14 | 2007-07-10 | Cisco Technology, Inc. | On demand capability exchange |
CN103095653A (zh) * | 2011-11-02 | 2013-05-08 | 中国移动通信集团公司 | 在多个通信端点之间切换媒体能力的方法与装置 |
US20160142865A1 (en) * | 2013-06-20 | 2016-05-19 | Lg Electronics Inc. | Method and apparatus for reproducing multimedia contents using bluetooth in wireless communication system |
US20180241787A1 (en) * | 2015-08-10 | 2018-08-23 | Samsung Electronics Co., Ltd. | Transmission device and method for controlling same |
CN109479113A (zh) * | 2016-07-21 | 2019-03-15 | 高通股份有限公司 | 用于在多媒体通信中使用压缩并行编解码器的方法和装置 |
US20180279050A1 (en) * | 2017-03-24 | 2018-09-27 | Samsung Electronics Co., Ltd. | Method and electronic device for transmitting audio data to multiple external devices |
Non-Patent Citations (2)
Title |
---|
何爱香: "基于H.323协议的视频会议及其技术研究", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
胡沛茹等: "一种蓝牙音频流传输方案的设计与实现", 《现代电子技术》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022222556A1 (zh) * | 2021-04-22 | 2022-10-27 | 荣耀终端有限公司 | 一种蓝牙设备中编解码能力的获取方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113316129B (zh) | 2022-05-20 |
WO2022222556A1 (zh) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11350486B2 (en) | Wireless communication method for earphones, master earphone, slave earphone, earphone system | |
CN112868244B (zh) | 一种点对多点的数据传输方法及设备 | |
CN114726946B (zh) | 一种自动切换蓝牙音频编码方式的方法、电子设备及可读存储介质 | |
EP3629561B1 (en) | Data transmission method and system, and bluetooth headphone | |
EP2423806B1 (en) | Method and device for transmitting universal serial bus audio data through a wireless data terminal | |
WO2021180083A1 (zh) | 蓝牙通信系统和无线通信系统 | |
CN110582109A (zh) | 一种无线局域网wlan网络接入方法及装置 | |
CN113348685B (zh) | 一种建立蓝牙数据通道的方法及装置 | |
CN113039822B (zh) | 一种数据信道的建立方法及设备 | |
WO2020077658A1 (zh) | 用于蓝牙设备的扩展连接方法和扩展连接系统 | |
CN113316129B (zh) | 一种蓝牙设备中编解码能力的获取方法及电子设备 | |
CN115022766B (zh) | 音频数据播放方法及设备 | |
US20140163971A1 (en) | Method of using a mobile device as a microphone, method of audio playback, and related device and system | |
CN112469014A (zh) | 配置蓝牙连接参数的方法和电子设备 | |
CN113301113B (zh) | 一种profile版本确定方法、系统、电子设备及计算机存储介质 | |
WO2022041681A1 (zh) | 无线耳机、控制无线耳机的方法及存储介质 | |
CN113709906B (zh) | 无线音频系统、无线通讯方法及设备 | |
CN115694742A (zh) | 在无线通信系统中发送确认信号的方法和电子设备 | |
CN101009897A (zh) | 使用无线终端输出音频数据的设备和方法 | |
TWI700953B (zh) | 一種無線傳輸系統及其方法 | |
CN114696961B (zh) | 一种多媒体数据传输方法和设备 | |
WO2022160107A1 (zh) | 通信方法及装置 | |
CN116801420A (zh) | 一种用于智能设备、以及多声道无线音频播放组件的系统 | |
US8073383B2 (en) | Method and apparatus for long-time music play on a mobile communication terminal | |
CN115086924A (zh) | 蓝牙通信方法、系统及电子设备 |
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 |