一种同时支持多路蓝牙音频应用的方法

文档序号:7612348阅读:752来源:国知局
专利名称:一种同时支持多路蓝牙音频应用的方法
技术领域
本发明涉及蓝牙无线通讯技术领域,具体地涉及蓝牙基于ACL连接的蓝牙高质量音频应用(AV Profile),和基于SCO/eSCO连接的低质量音频相关应用(Headset,Hands Free,Cordless Telephone Profile)在操作系统中的应用。
背景技术
蓝牙(Bluetooth)是一种短距离无线射频通信技术,它工作在2.4GHz的ISM(Industrial Scientific Medical)频段。按照蓝牙特别兴趣小组(Special Interest Group,简称SIG)制定的蓝牙规范,蓝牙的基本网络结构是由一个主控设备和最多七个从属设备组成的微微网(Piconet),主控设备和从属设备之间采用时分多址(TDMA)的方式进行通信。通过集成蓝牙通讯模块,各种设备可以低成本连接起来。蓝牙设备之间通过全球唯一的蓝牙设备地址(Bluetooth DeviceAddress)建立蓝牙的异步连接(Asynchronous Connection-Less Link)和同步连接(Synchronous Connection-Oriented Link)以传输字符数据和语音数据。一个设备的功能以蓝牙服务的方式提供给另一个设备。一个设备可同时提供多个服务。用户可根据需要选择其中的服务进行连接。
蓝牙技术作为一种短距离的无线射频通信技术,其目的是为了取代有线电缆连接。它提供了SCO/eSCO链路,用来传输采样频率较低的实时语音信号,方便用户使用手持设备接听和拨叫电话(Headset,HandsFree,Cordless Telephone应用);同时它使用ACL链路来传输高质量的音频编码数据(MP3,SBC格式),方便用户听音乐等(蓝牙AV应用)。
在计算机操作系统中实现蓝牙音频应用的支持都需要给操作系统添加蓝牙声卡,操作系统中的应用程序将语音数据输出到蓝牙声卡,蓝牙声卡将语音数据通过蓝牙发送到远端蓝牙设备,另一个方向,系统通过蓝牙收到远端蓝牙设备的语音数据,报告给蓝牙声卡,蓝牙声卡再报告给操作系统中的应用程序。
目前在计算机的蓝牙音频应用的支持方案中都是给操作系统仅添加一个蓝牙声卡音频设备,该蓝牙声卡既支持高质量蓝牙音频应用也支持低质量蓝牙音频应用。该方案的缺点是,因为只有一个蓝牙声卡,操作系统只能同时支持一个蓝牙音频应用(如果强迫使多个应用程序使用这同一个蓝牙声卡,则多个应用程序的声音数据就会混杂在一起),而操作系统和蓝牙的通讯能力完全可以做到同时连接多个蓝牙音频应用,例如一边可以播放歌曲到一个蓝牙立体声耳机,一边使用另一个蓝牙普通耳机进行基于SCO/eSCO的蓝牙通话。该方案的另外一个缺点是,因为蓝牙声卡需通过系统标准接口向系统和应用程序报告其支持的采样频率(从8KHz到44.1KHz以及以上)和声道模式(包括单声道和双声道),而该蓝牙声卡既支持高质量蓝牙音频应用也支持低质量蓝牙音频应用,该声卡给系统和应用程序报告的所支持的采样频率为从8KHz到44KHz以上,声道模式包括单声道和双声道,应用程序一般都使用声卡的最大采样频率和其最好的双声道模式,蓝牙声卡下层接口输出的蓝牙音频数据为对应的较高采样频率,这样,对于低质量蓝牙音频应用,该声卡输出的音频数据的采样频率与蓝牙连接的数据的采样频率不符合,声卡所输出的数据需要进行格式转换,须从高采样频率/双声道转换为蓝牙SCO/eSCO所对应的8KHz(16KHz)/单声道,增加了系统的转换开销。

发明内容
本发明首要目的是为了解决以上问题,提出一种在计算机操作系统中同时支持多路蓝牙音频应用的方法,其特征为首先根据以下两种方式之一为系统添加蓝牙声卡音频设备(a)第一种方式为在操作系统中为每一路蓝牙音频应用的蓝牙连接添加一个蓝牙声卡音频设备,即当远端蓝牙音频设备与本计算机建立蓝牙音频连接后,为该蓝牙连接添加一个蓝牙声卡音频设备,此蓝牙声卡为该远端蓝牙音频设备的该蓝牙音频连接所专用,该蓝牙音频连接的蓝牙语音数据全部通过该蓝牙声卡和操作系统中的应用程序进行交互;(b)第二种方式为在操作系统中为蓝牙高质量音频应用和低质量音频相关应用分别添加两个蓝牙声卡音频设备,其中一个蓝牙声卡音频设备为蓝牙高质量音频应用所专用,即蓝牙高质量音频连接的蓝牙语音数据全部通过该蓝牙声卡和操作系统中的应用程序进行交互;另一个蓝牙声卡音频设备为蓝牙低质量音频相关应用所专用,即蓝牙低质量音频连接的蓝牙语音数据全部通过该蓝牙声卡和操作系统中的应用程序进行交互。这种方式是上述第一种方式的简化,因为普通用户使用时,只用到同时只使用一路蓝牙低质量音频连接和一路蓝牙高质量音频连接的情况较多,所以可以仅添加一个高质量蓝牙声卡和一个低质量蓝牙声卡。
所述的蓝牙声卡对操作系统表现为具有系统标准接口的音频设备,应用程序打开蓝牙声卡,通过蓝牙声卡上层接口向声卡发送音频数据,音频数据经过蓝牙声卡,从蓝牙声卡的下层接口输出,从蓝牙声卡下层接口输出的数据,通过蓝牙协议栈及蓝牙射频硬件发送到远端蓝牙设备;通过蓝牙协议栈及蓝牙射频硬件从远端蓝牙设备接收到的音频数据,输入给蓝牙声卡下层接口,音频数据经过蓝牙声卡从声卡上层接口输出给应用程序。
系统通过和多个远端蓝牙设备同时建立多个蓝牙音频连接,各蓝牙音频连接的音频数据只经过其各自专用的蓝牙声卡输送到各自的应用程序,从而在系统中实现同时支持多路蓝牙音频应用。其中本机的蓝牙协议栈可以运行于本计算机的操作系统中,也可运行于蓝牙链路管理/蓝牙基带层所在的蓝牙射频适配器中。
本发明的第二目的是为了解决蓝牙声卡输出的音频数据的采样频率与蓝牙连接的数据的采样频率不符合,声卡所输出的数据需要进行格式转换的问题,而提出的方法。
该方法通过给蓝牙声卡添加特定的编程控制接口,通过该接口可以对蓝牙声卡对操作系统以及应用程序所报告其支持的的采样频率以及声道模式进行设置,系统对蓝牙声卡采样频率以及声道模式遵照以下两种模式之一进行设置(a)固定模式其中为蓝牙高质量音频应用专用的蓝牙声卡,声卡支持采样频率大于16KHz,支持立体声声道模式;为蓝牙低质量音频应用专用的声卡,声卡支持采样频率等于蓝牙SCO/eSCO的采样频率8KHz或16KHz,仅支持单声道模式;其中,蓝牙声卡的固定模式可以通过编程控制接口,在系统初始化时设置为所对应的固定采样频率和声道模式;(b)动态可配置模式蓝牙声卡支持所有采样频率,支持立体声以及单声道模式,通过蓝牙声卡的编程控制接口,运行时可以动态配置其采样频率和声道模式,以匹配该蓝牙连接的音频数据的采样频率和声道模式。
对于固定模式,蓝牙声卡的采样频率和声道模式和蓝牙高质量音频连接/蓝牙低质量音频连接的蓝牙音频数据的采样频率和声道模式直接对应,从蓝牙声卡下层接口输出的数据不需要做格式转换,可直接通过蓝牙发送到远端蓝牙设备,通过蓝牙从远端蓝牙设备接收到的数据也不需要做格式转换,可直接输入给蓝牙声卡下层接口;对于动态可配置模式,系统在蓝牙连接建立后,根据蓝牙连接的类型,动态配置蓝牙声卡的采样频率和声道模式,以匹配蓝牙连接的音频数据的采样频率和声道模式,使得从蓝牙声卡下层接口输出的数据不需要做格式转换,可直接通过蓝牙发送到远端蓝牙设备,通过蓝牙从远端蓝牙设备接收到的数据也不需要做格式转换,可直接输入给蓝牙声卡下层接口,减少音频数据格式转换。动态配置的步骤为(a)本机与远端蓝牙设备建立蓝牙音频应用连接,取得该蓝牙音频应用连接的音频数据的采样频率和声道模式等配置;(b)系统根据该蓝牙音频应用连接的音频数据的采样频率和声道模式等配置,通过蓝牙声卡编程控制接口配置蓝牙声卡对操作系统所报告的其支持的采样频率以及声道模式;(c)系统通知相关的应用程序蓝牙声卡配置完成,应用程序可以打开蓝牙声卡;如应用程序已经打开蓝牙声卡,则需关闭蓝牙声卡,重新再次打开蓝牙声卡。
本发明的第三个目的是为了解决当添加了蓝牙声卡音频设备,使得系统存在多个声卡音频设备时,如何自动选择应用声卡,使多个声卡音频设备对用户和应用程序透明的问题。系统采用自动设置系统默认声卡或蓝牙连接建立成功后通知相关的应用程序的方法。
自动设置系统默认声卡的步骤为(a)系统与远端蓝牙设备建立蓝牙音频连接;(b)系统将对应于该蓝牙音频连接的蓝牙声卡设置为系统的默认声卡,同时记录系统原来的默认声卡;(c)系统通过消息或函数接口调用,通知相应的音频应用软件,对应于该蓝牙音频连接的蓝牙声卡已经设置为系统的默认声卡,音频应用软件直接打开系统默认声卡,即此蓝牙声卡,进行相应音频数据操作;(d)当该蓝牙音频连接断开时,或当音频应用软件直接打开系统的默认声卡,即此蓝牙声卡以后,系统恢复最初的系统默认声卡。
或者在蓝牙连接建立成功后,通知相关的应用程序对应的该声卡音频设备已准备就绪的方法,其步骤为(a)系统与远端蓝牙设备建立蓝牙音频连接;(b)系统通过消息或函数接口调用,将对应于该蓝牙音频连接的蓝牙声卡直接通知相应的音频应用软件,音频应用软件直接打开该蓝牙声卡,进行相应音频数据操作。
这样用户无需在建立蓝牙连接后,再手工为应用程序选择声卡,提高用户使用的方便性。
通过借助优选实施例附图详细描述本发明的流程,将有助于理解本发明的目的和优点。其中

图1是常规的蓝牙声卡需要音频数据格式转换的工作示意图。
图2是根据本发明的对蓝牙声卡的采样频率和模式进行设置时的工作示意图。
图3是如果仅使用一个蓝牙声卡支持多路蓝牙音频连接应用的示意图。
图4是根据本发明使用多块蓝牙声卡支持多路音频应用的示意图。
具体实施例图1是常规的蓝牙声卡需要音频数据格式转换的工作示意图。
常规的音频应用程序(S100)使用蓝牙声卡(S110)的最大采样频率和声道模式,从蓝牙声卡上层接口向蓝牙声卡发送音频数据流A11,音频数据A11通过蓝牙声卡获得音频流A12,由于A12的格式与蓝牙音频应用规定的格式不同,音频流A12需要通过格式转换模块(S120)进行转换,得到音频流A13,然后才能通过蓝牙协议栈及蓝牙硬件(S130)发送给远端蓝牙设备。蓝牙协议栈及蓝牙硬件(S130)从远端蓝牙设备收到的音频数据A14,需要通过格式转换模块(S120)进行转换,得到音频数据A15,然后才能送给蓝牙声卡下层接口,蓝牙声卡通过其上层接口将输出音频数据A16发给应用程序(S100)。
图2是根据本发明的对蓝牙声卡的采样频率和模式进行设置时的工作示意图。
当蓝牙连接建立成功后,控制模块(S230)根据该蓝牙连接的音频数据格式信息(A25)通过蓝牙声卡的接口对蓝牙声卡的采样频率和声道模式进行设置(A26),音频应用程序(S200)对蓝牙声卡的上层接口输入和输出的数据流(A21,A24)和蓝牙协议栈及蓝牙硬件(S220)对蓝牙声卡的下层接口输入和输出的数据流(A22,A23)格式完全相同,音频数据流不需要格式转换。
图3是如果仅使用一个蓝牙声卡支持多路蓝牙音频连接应用的示意图。
当多个音频应用软件(S300,S310)共用同一个蓝牙声卡(S320)时,从音频应用软件(S300,S310)发给蓝牙声卡(S320)的音频数据A31和A32在经过蓝牙声卡后,会混杂在一起成为A33,A33通过蓝牙协议栈及蓝牙硬件(S330)分别发送给两个远端蓝牙设备。从两个远端蓝牙设备传来的蓝牙音频数据通过蓝牙声卡下层接口输入(A36),两个语音数据通过蓝牙声卡时又混杂在一起,分别送给两个音频应用软件(S300,S310)。这种情况在很多情况下都是用户所不希望看到的。例如用户在使用AV耳机听音乐的时候,需要使用蓝牙耳机接听网络IP电话,如果按照图3所示的方法同时使用这两种音频应用,用户从耳机中将获得电话语音和本地音乐的混合声音。
图4是根据本发明使用多个蓝牙声卡支持多路音频应用的示意图。
为了同时支持多个音频应用软件(S400,S410),每一个蓝牙连接都具有各自的专用蓝牙声卡(S420,S430),并且系统根据蓝牙连接类型,动态设置蓝牙声卡的采样频率和声道模式,高质量音频应用程序对蓝牙声卡的上层接口输入和输出的数据流(A41,A42)和蓝牙协议栈及蓝牙硬件(S440)对蓝牙声卡的下层接口输入和输出的数据流(A43,A44)格式完全相同,音频数据流不需要格式转换;低质量音频应用程序对蓝牙声卡的上层接口输入和输出的数据流(A45,A46)和蓝牙协议栈及蓝牙硬件(S440)对蓝牙声卡的下层接口输入和输出的数据流(A47,A48)格式完全相同,音频数据流不需要格式转换;使用本发明,用户能够同时使用多路音频应用,各自的蓝牙音频数据相互独立,互不干扰。
虽然本发明是参考其优选实施例示出和描述的,但本领域的普通技术人员应该理解,在不脱离附属的权利要求书所限定的本发明的精神和范围的情况下,可以进行形式和细节的各种改变。
权利要求
1.一种在计算机操作系统中同时支持多路蓝牙音频应用的方法,其特征在于首先根据以下两种方式之一为系统添加蓝牙声卡音频设备(a)在操作系统中为每一路蓝牙音频应用的蓝牙连接添加一个蓝牙声卡音频设备,即当远端蓝牙音频设备与本计算机建立蓝牙音频连接后,为该蓝牙连接添加一个蓝牙声卡音频设备,此蓝牙声卡为该远端蓝牙音频设备的该蓝牙音频连接所专用,该蓝牙音频连接的蓝牙语音数据全部通过该蓝牙声卡和操作系统中的应用程序进行交互;(b)在操作系统中为蓝牙高质量音频应用和低质量音频相关应用分别添加两个蓝牙声卡音频设备,其中一个蓝牙声卡音频设备为蓝牙高质量音频应用所专用,即蓝牙高质量音频连接的蓝牙语音数据全部通过该蓝牙声卡和操作系统中的应用程序进行交互;另一个蓝牙声卡音频设备为蓝牙低质量音频相关应用所专用,即蓝牙低质量音频连接的蓝牙语音数据全部通过该蓝牙声卡和操作系统中的应用程序进行交互。系统和多个远端蓝牙设备同时建立蓝牙音频连接,各蓝牙音频连接的数据通过各自的专用蓝牙声卡和操作系统中的应用程序进行交互,在系统中实现同时支持多路蓝牙音频应用;当添加了蓝牙声卡音频设备,使得系统存在多个声卡音频设备时,通常只有其中的一个能够成为默认声卡音频设备,系统自动将当前建立的蓝牙连接所专用的蓝牙声卡设置为系统默认声卡音频设备并通知相关的应用程序;系统也可以在蓝牙连接建立成功后,通知相关的应用程序对应的该蓝牙声卡音频设备已准备就绪;其中的蓝牙音频应用包括基于蓝牙ACL连接的蓝牙高质量音频应用(蓝牙音频视频应用,AV Profile),和基于蓝牙SCO/eSCO连接的低质量音频相关应用(蓝牙耳机应用HeadsetProfile,蓝牙免提应用Hands Free Profile,蓝牙无绳电话应用CordlessTelephone Profile)。
2.根据权利要求1,所述的蓝牙声卡,其特征在于所述的蓝牙声卡对操作系统表现为音频设备,通过本机蓝牙协议栈从远端蓝牙音频设备收到的蓝牙音频数据发送给蓝牙声卡,为蓝牙声卡的底层输入数据,应用程序通过蓝牙声卡的上层接口接收输入数据;应用程序的输出数据通过蓝牙声卡的上层接口发送给蓝牙声卡,蓝牙声卡从其下层接口,通过本机蓝牙协议栈发送给远端设备;其中本机蓝牙协议栈可以运行于本计算机的操作系统下,也可运行于蓝牙链路管理/蓝牙基带层所在的蓝牙射频适配器中;该蓝牙声卡具有特定的编程控制接口,通过该接口可以对蓝牙声卡的采样频率以及声道模式进行设置;蓝牙声卡对操作系统所报告支持的采样频率以及声道模式为以下两种模式之一(a)固定模式其中为蓝牙高质量音频应用专用的蓝牙声卡,声卡支持采样频率大于16KHz,支持立体声声道模式;为蓝牙低质量音频应用专用的声卡,声卡支持采样频率等于蓝牙SCO/eSCO的采样频率,仅支持单声道模式;(b)动态可配置模式蓝牙声卡支持所有采样频率,支持立体声以及单声道模式,此蓝牙声卡具有编程控制接口,运行时可以动态配置蓝牙声卡的采样频率和声道模式,以匹配蓝牙连接的音频数据的采样频率和声道模式,减少音频数据格式转换。
3.根据权利要求2,所述的动态配置蓝牙声卡的采样频率和声道模式,以匹配蓝牙连接的音频数据的采样频率和声道模式,减少音频数据格式转换,其特征在于,包括步骤(a)本机与远端蓝牙设备建立蓝牙音频应用连接,取得该蓝牙音频应用连接的音频数据的采样频率和声道模式等配置;(b)系统根据该蓝牙音频应用连接的音频数据的采样频率和声道模式等配置,通过蓝牙声卡编程控制接口配置蓝牙声卡对操作系统所报告的其支持的采样频率以及声道模式;(c)系统通知相关的应用程序蓝牙声卡配置完成,应用程序可以打开蓝牙声卡;如应用程序已经打开蓝牙声卡,则需关闭蓝牙声卡,重新再次打开蓝牙声卡。
4.根据权利要求1,所述的系统自动将当前建立的蓝牙连接所专用的蓝牙声卡设置为系统默认声卡音频设备并通知相关的应用程序,其特征在于,包括步骤(a)系统与远端蓝牙设备建立蓝牙音频连接;(b)系统将对应于该蓝牙音频连接的蓝牙声卡设置为系统的默认声卡,同时记录系统原来的默认声卡;(c)系统通知相应的音频应用软件,对应于该蓝牙音频连接的蓝牙声卡已经设置为系统的默认声卡,音频应用软件直接打开系统默认声卡,即此蓝牙声卡,进行相应音频数据操作;(d)当该蓝牙音频连接断开时,或当音频应用软件直接打开系统的默认声卡,即此蓝牙声卡以后,系统恢复最初的系统默认声卡。
5.根据权利要求1,所述的在蓝牙连接建立成功后,通知相关的应用程序对应的该声卡音频设备已准备就绪,其特征在于,包括步骤(a)系统与远端蓝牙设备建立蓝牙音频连接;(b)系统将对应于该蓝牙音频连接的蓝牙声卡直接通知相应的音频应用软件,音频应用软件直接打开该蓝牙声卡,进行相应音频数据操作。
全文摘要
本发明公开了一种优化的在计算机操作系统中同时支持多路蓝牙音频应用的方法;内容包括系统和多个远端蓝牙设备同时建立蓝牙音频连接,系统为各蓝牙音频连接添加专用蓝牙声卡,各蓝牙音频连接的数据通过各自的专用蓝牙声卡和操作系统中的应用程序进行交互,在系统中实现同时支持多路蓝牙音频应用。系统根据蓝牙音频连接的格式,配置蓝牙声卡的采样频率和声道模式,以匹配蓝牙连接的音频数据的采样频率和声道模式,减少音频数据格式转换。当系统存在多个声卡音频设备时,通常只有其中的一个能够成为默认声卡音频设备,系统自动设置系统默认声卡音频设备并通知相关的应用程序;系统也可以,在蓝牙连接建立成功后,通知相关的应用程序对应的该声卡音频设备已准备就绪,使多声卡对用户透明。
文档编号H04B5/00GK1858693SQ20051001167
公开日2006年11月8日 申请日期2005年4月30日 优先权日2005年4月30日
发明者田丹, 张鑫 申请人:艾威梯软件技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1