实现支持usb无线音频设备的方法及系统的制作方法

文档序号:6487680阅读:169来源:国知局
实现支持usb无线音频设备的方法及系统的制作方法
【专利摘要】本发明公开一种在Android系统中实现支持USB无线音频设备的方法及系统,其中,所述方法包括步骤:当检测到USB无线音频设备插入时,遍历Android系统的注册目录,查找出已在Android系统中注册的与所述USB无线音频设备对应的声卡驱动;判断所述声卡驱动是否能正常使用;当所述声卡驱动能正常使用时,则屏蔽Android系统自带音频设备,并打开所述声卡驱动,驱动所述USB无线音频设备实现音频功能。本发明通过简单的改进,使得众多Android系统的智能设备均可利用USB无线音频设备进行输入及输出,满足了用户的需求,方便了人们的使用。
【专利说明】实现支持USB无线音频设备的方法及系统
【技术领域】
[0001]本发明涉及Android系统的音频播放领域,尤其涉及一种在Android系统中实现支持USB无线音频设备的方法及系统。
【背景技术】
[0002]Android原生系统自3.1起,已经支持多种USB设备,诸如USB键盘、USB鼠标及USB游戏手柄,这些改进为使用者带来了更良好的用户体验。目前发布的Android4.0版本,已经能够在内核(Kernel)层支持标准的USB音频类(USB Audio Class,UAC)设备,同时,伴随无线传输技术的发展,越来越多的使用2.4G无线技术的USB无线耳麦出现在人们的生活中。
[0003]在日常使用中,用户经常需要利用Android系统的智能设备(比如手机、PAD、智能电视)收听音乐或进行通话,但是又不想影响到其他人,或者用户不想被普通扬声器的传输距离所束缚,可以在收听音乐或进行通话的同时做其他的事情。但是现有的Android系统中,当输入或输出声音时,音频数据经过音频解码器后,只能沿着默认的通道通过自带扬声器进行输出或者通过麦克风进行输入。其主要是因为现有的Android系统的硬件抽象层的声音输出或输入过程是固定的,以声音输出过程为例,应用程序(App lication, APP )播放声音文件时,硬件抽象层会调用声音数据输出函数(0ut_write函数),将音频数据写入底层硬件设备,音频数据被写入到MPEG音频解码器中,最终通过Kernel层(内核层)的驱动,写入到自带扬声器进行扬声。由于上述音频数据的处理过程是固定的,所以,即使在手动连接USB无线音频设备后,声音仍然由系统自带扬声器进行扬声或系统自带麦克风进行收音,无法通过USB无线音频设备输入或输出。
[0004]现有技术还有待于改进和发展。

【发明内容】

[0005]鉴于上述现有技术的不足,本发明的目的在于提供在Android系统中实现支持USB无线音频设备的方法及系统,旨在解决现有USB无线音频设备无法在Android系统中使用的问题。
[0006]本发明的技术方案如下:
一种在Android系统中实现支持USB无线音频设备的方法,其中,包括步骤:
A、当需要实现音频功能时,遍历Android系统的注册目录,查找出已在Android系统中注册的与所述USB无线音频设备对应的声卡驱动;
B、判断所述USB无线音频设备对应的声卡驱动是否能正常使用;
C、当所述声卡驱动能正常使用时,则屏蔽Android系统自带音频设备,并打开所述声卡驱动,驱动所述USB无线音频设备实现音频功能。
[0007]所述在Android系统中实现支持USB无线音频设备的方法,其中,所述步骤A之前还包括: AO、当Android系统检测到USB无线音频设备的插入时,在注册目录中注册该USB无线音频设备对应的声卡驱动。
[0008]所述在Android系统中实现支持USB无线音频设备的方法,其中,所述步骤A具体包括:
Al、实时遍历Android系统的注册目录;
A2、在所述注册目录中查找出声卡驱动目录;
A3、在所述声卡驱动目录中查找出已在Android系统中注册的与插入的USB无线音频设备对应的声卡驱动。
[0009]所述在Android系统中实现支持USB无线音频设备的方法,其中,所述步骤C具体包括:
Cl、当所述声卡驱动能正常使用时,为所述声卡驱动增加一标记;
C2、屏蔽Android系统自带音频设备;
C3、打开具有标记的声卡驱动,通过相应的USB无线音频设备实现音频功能。
[0010]所述在Android系统中实现支持USB无线音频设备的方法,其中,所述步骤C还包括:
当所述声卡驱动不能正常使用时,则通过Android系统自带音频设备实现音频功能。
[0011]—种在Android系统中实现支持USB无线首频设备的系统,其中,包括:
声卡驱动查找模块,用于当需要实现音频功能时,遍历An dr oid系统的注册目录,查找出已在Android系统中注册的与所述USB无线音频设备对应的声卡驱动;
声卡驱动判断模块,用于判断所述USB无线音频设备对应的声卡驱动是否能正常使
用;
音频设备切换模块,用于当所述声卡驱动能正常使用时,则屏蔽Android系统自带音频设备,并打开所述声卡驱动,驱动所述USB无线音频设备实现音频功能。
[0012]所述在Android系统中实现支持USB无线首频设备的系统,其中,所述声卡驱动查找模块包括:
注册目录遍历单元,用于实时遍历Android系统的注册目录;
声卡驱动目录查找单元,用于在所述注册目录中查找出声卡驱动目录;
声卡驱动查找单元,用于在所述声卡驱动目录中查找出已在Android系统中注册的与插入的USB无线音频设备对应的声卡驱动。
[0013]所述在Android系统中实现支持USB无线首频设备的系统,其中,所述首频设备切换模块包括:
标记单元,用于当所述声卡驱动能正常使用时,为所述声卡驱动增加一标记;
屏蔽单元,用于屏蔽Android系统自带音频设备;
启用单元,用于打开具有标记的声卡驱动,以启用相应的USB无线音频设备实现音频功能。
[0014]有益效果:本发明在Android系统中实现支持USB无线音频设备的方法及系统,当检测到注册目录中除系统自带的音频设备对应的声卡驱动以外的声卡驱动中还有能正常打开的声卡驱动时,确认该Android系统中插入了 USB无线音频设备,然后将系统自带的音频设备关闭,而通过USB无线音频设备实现音频功能。显然,本发明通过简单的改进,使得众多Android系统的智能设备均可利用USB无线音频设备实现音频功能,满足了用户的需求,方便了人们的使用。
【专利附图】

【附图说明】
[0015]图1为本发明在Android系统中实现支持USB无线音频设备的方法较佳实施例的流程图。
[0016]图2为图1所示方法中查找所述USB无线音频设备对应的声卡驱动的具体流程图。
[0017]图3为图1所示方法中通过USB无线音频设备实现音频功能的流程图。
[0018]图4为本发明在Android系统中实现支持USB无线音频设备的系统较佳实施例的结构框图。
[0019]图5为图4所不系统中声卡驱动查找|旲块的结构框图。
[0020]图6为图4所示系统中USB音频设备切换模块的结构框图。
【具体实施方式】
[0021]本发明提供在Android系统中实现支持USB无线音频设备的方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0022]请参阅图1,图1为本发明在Android系统中实现支持USB无线音频设备的方法较佳实施例的流程图,如图所示,其包括步骤: 5101、当需要实现音频功能时,遍历Android系统的注册目录,查找出在Android系统中注册的USB无线音频设备对应的声卡驱动;
5102、判断所述USB无线音频设备对应的声卡驱动是否能正常使用,如果是,则执行步骤S102 ;如果否,则执行S104 ;
5103、屏蔽Android系统自带音频设备,并打开所述声卡驱动,通过所述声卡驱动对应的USB无线音频设备实现音频功能;
5104、通过Android系统自带音频设备实现音频功能。
[0023]在步骤SlOl中,首先在Android系统的注册目录中找到已注册的声卡驱动。当类似USB无线耳麦的USB无线音频设备插入而连接到Android系统时,这些设备会在Android系统中的特定的目录中进行注册,对应于Android系统生成该设备的相关信息。例如,Android系统提供了 proc目录,proc目录是一个只读的文件系统,所有已经在Android系统上注册的设备,都可以在proc对应的目录中查找到。以音频输出设备为例,Android系统中自带的扬声器在proc/asound/ (本文以采用ALSA作为音频实现为例)目录下生成以下文件:proc/asound/card0。而当我们将USB无线耳麦连接至Android系统的设备之后,会生成以下文件:proc/asound/cardl,在cardl目录下,可找到pcmOc以及pcmOp,pcmOc代表插入的USB无线耳麦的录音设备,pcmOp代表插入的USB无线耳麦的放音设备,在pcmOc的目录下,可查找到info文件,所述info文件保存了我们需要的声卡驱动信息,比如;
card:1
device: Osubdevice: O
stream: CAPTURE
id: USB Audio
name: USB Audio 通过上述信息,即可获取插入的USB无线耳麦在Android系统上注册为cardl (系统自带的扬声器已注册为cardO),当前的数据流为录音用音频流。
[0024]如图2所示,上述步骤SlOl可具体细化为以下步骤:
5201、实时遍历Android系统的注册目录,具体可通过调用Android系统的0ut_write函数进行实时遍历;
5202、在所述注册目录中查找出声卡驱动目录;
5203、在所述声卡驱动目录中查找出已在Android系统中注册的与插入的USB无线音频设备对应的声卡驱动。
[0025]通过上述方法,可查找到所有已在Android系统中注册的声卡驱动,当然,在此步骤之前还需要使该USB无线音频设备能被Android系统识别,然后才能在注册目录中注册,所以步骤SlOl之前还包括:当Android系统检测到USB无线音频设备的插入时,在注册目录中注册该USB无线音频设备对应的声卡驱动。
[0026]在步骤S102中,查找出已注册的声卡驱动后,需要判断所述USB无线音频设备对应的声卡驱动能否正常使用,具体可通过Android系统自带的用于打开声卡驱动的函数如snprintf函数和open函数等尝试去遍历打开除系统自带音频设备对应的声卡驱动(cardO)以外的所有声卡驱动,如cardl、card2对应的声卡驱动,若能打开这些声卡驱动,这证明声卡驱动能够正常使用,并记录下声卡驱动编号,然后由系统调用用于关闭声卡驱动的函数如close函数,关闭这些可以打开的声卡驱动;若不能打开当前的声卡驱动,则可尝试打开下一声卡驱动,直到遍历完所有的声卡驱动设备。
[0027]具体的,在该步骤S102中,首先判断是否能打开所述USB无线音频设备对应的声卡驱动。若能打开所述声卡驱动,则判定所述声卡驱动能正常使用,并关闭所述声卡驱动。此处所述的关闭声卡驱动,只是暂时关闭,用于检查声卡驱动能否正常工作,还未正常使用,所以只是暂时性的关闭,后续使用时再重新打开需要的声卡驱动设备。如果不能打开所述声卡驱动则判定所述声卡驱动不能正常使用。
[0028]在步骤S103中,判断完所述USB无线音频设备对应的声卡驱动能正常使用后,可打开注册目录中的检测到的除系统自带音频设备对应的声卡驱动以外的能正常使用的第一个声卡驱动,该声卡驱动对应着插入的USB无线音频设备,以通过该对应的USB无线音频设备实现音频功能。或者还可通过为声卡驱动增加一标记,然后打开具有该标记的声卡驱动,通过相应的USB无线音频设备进行实现音频功能,故此步骤可具体细化为以下步骤,如图3所示,
5301、当所述声卡驱动能正常使用时,为所述声卡驱动增加一标记;
5302、屏蔽Android系统自带音频设备,具体可通过关闭Android系统自带音频设备对应的声卡驱动来屏蔽系统自带的音频设备;
5303、打开具有标记的声卡驱动,通过相应的USB无线音频设备实现音频功能。
[0029]需要说明的是,本发明还可通过在声卡驱动中增加禁止标志,通过该禁止标志来禁止使用USB无线音频设备,由系统自带的音频设备实现音频功能,原理同上。另外在本发明中的proc/asound/目录下的cardl仅在USB无线音频设备连接到Android系统设备之后并且被识别了才会出现,同理,card2、card3、…card7都是在相应的USB无线音频设备连接到Android系统设备之后才会出现,而当没有USB无线音频设备连接到Android系统设备,则只有cardO存在。并且本发明中是以USB无线音频设备的输出为例进行说明,而录音功能也是按照同样的方法实现。
[0030]本发明可应用于多种智能设备中,例如手机、PAD、电视等等。并且由于0ut_Write函数在音频传输过程中是实时循环调用的,所以对于是否有USB无线音频设备连接至Android系统中的判断也是实时进行的,因此,USB无线音频设备的热插拔对于音频播放等等是不会造成影响的,即可实现随插随用。
[0031]通过上述方法,本发明的音频数据处理流程,最后是由USB无线音频设备实现录音或放音等音频功能,其在0ut_write函数处增加了处理,即判断当前Android系统设备是否连接了 USB无线音频设备,若连接了,则通过该USB无线音频设备实现音频功能,并屏蔽掉自带的音频设备,而如果未连接,则仍通过自带音频设备实现音频功能。
[0032]基于上述方法,本发明还提供一种在Android系统中实现支持USB无线音频设备的系统,如图4所示,其包括:
声卡驱动查找模块100,用于当需要实现音频功能时,遍历Android系统的注册目录,查找出已在Android系统中注册的与所述USB无线音频设备对应的声卡驱动;
声卡驱动判断模块200,用于判断所述USB无线音频设备对应的声卡驱动是否能正常使用;
音频设备切换模块300,用于当所述USB无线音频设备对应的声卡驱动不能正常使用时,由系统自带的音频设备实现录音、放音等音频功能;而当所述插入的USB无线音频设备对应的声卡驱动能正常使用时,则`屏蔽Android系统自带音频设备,并打开所述声卡驱动,切换至由与该声卡驱动对应的USB无线音频设备实现音频功能。
[0033]进一步,如图5所示,所述声卡驱动查找模块100包括:
注册目录遍历单元110,用于实时遍历Android系统的注册目录;
声卡驱动目录查找单元120,用于在所述注册目录中查找出声卡驱动目录;
声卡驱动查找单元130,用于在所述声卡驱动目录中查找出已在Android系统中注册的与插入的USB无线音频设备对应的声卡驱动。关于上述各单元的功能作用前面已有详述,故不再赘述。
[0034]进一步,如图6所示,所述音频设备切换模块300包括:
标记单元310,用于当所述插入的USB无线音频设备对应的声卡驱动能正常使用时,为所述声卡驱动增加一标记;
屏蔽单元320,用于屏蔽Android系统自带音频设备,具体可通过关闭Android系统自带音频设备对应的声卡驱动来屏蔽该系统自带的音频设备;
启用单元330,用于打开具有标记的声卡驱动,以启用相应的USB无线音频设备实现录音或放音等音频功能。
[0035]关于上述各单元的功能作用前面已有详述,故不再赘述。
[0036]综上所述,本发明在Android系统中实现支持USB无线音频设备的方法及系统,当检测到注册目录中除系统自带的音频设备对应的声卡驱动以外的声卡驱动中还有能正常打开的声卡驱动时,确认该Android系统中插入了 USB无线音频设备,然后将系统自带音频设备关闭,通过USB无线音频设备实现音频功能。显然,本发明通过简单的改进,使得众多Android系统的智能设备均可利用USB无线音频设备实现音频功能,满足了用户的需求,方便了人们的使用。
[0037]应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【权利要求】
1.一种在Android系统中实现支持USB无线音频设备的方法,其特征在于,包括步骤: A、当需要实现音频功能时,遍历Android系统的注册目录,查找出已在Android系统中注册的与所述USB无线音频设备对应的声卡驱动; B、判断所述USB无线音频设备对应的声卡驱动是否能正常使用; C、当所述声卡驱动能正常使用时,则屏蔽Android系统自带音频设备,并打开所述声卡驱动,驱动所述USB无线音频设备实现音频功能。
2.根据权利要求1所述在Android系统中实现支持USB无线音频设备的方法,其特征在于,所述步骤A之前还包括: A0、当Android系统检测到USB无线音频设备的插入时,在注册目录中注册该USB无线音频设备对应的声卡驱动。
3.根据权利要求1所述在Android系统中实现支持USB无线音频设备的方法,其特征在于,所述步骤A具体包括: Al、实时遍历Android系统的注册目录; A2、在所述注册目录中查找出声卡驱动目录; A3、在所述声卡驱动目录中查找出已在Android系统中注册的与插入的USB无线音频设备对应的声卡驱动。
4.根据权利要求`1所述在Android系统中实现支持USB无线音频设备的方法,其特征在于,所述步骤C具体包括: Cl、当所述声卡驱动能正常使用时,为所述声卡驱动增加一标记; C2、屏蔽Android系统自带音频设备; C3、打开具有标记的声卡驱动,通过相应的USB无线音频设备实现音频功能。
5.根据权利要求4所述在Android系统中实现支持USB无线音频设备的方法,其特征在于,所述步骤C还包括: 当所述声卡驱动不能正常使用时,则通过Android系统自带音频设备实现音频功能。
6.—种在Android系统中实现支持USB无线首频设备的系统,其特征在于,包括: 声卡驱动查找模块,用于当需要实现音频功能时,遍历Android系统的注册目录,查找出已在Android系统中注册的与所述USB无线音频设备对应的声卡驱动; 声卡驱动判断模块,用于判断所述USB无线音频设备对应的声卡驱动是否能正常使用; 音频设备切换模块,用于当所述声卡驱动能正常使用时,则屏蔽Android系统自带音频设备,并打开所述声卡驱动,驱动所述USB无线音频设备实现音频功能。
7.根据权利要求6所述在Android系统中实现支持USB无线音频设备的系统,其特征在于,所述声卡驱动查找模块包括: 注册目录遍历单元,用于实时遍历Android系统的注册目录; 声卡驱动目录查找单元,用于在所述注册目录中查找出声卡驱动目录; 声卡驱动查找单元,用于在所述声卡驱动目录中查找出已在Android系统中注册的与插入的USB无线音频设备对应的声卡驱动。
8.根据权利要求6所述在Android系统中实现支持USB无线音频设备的系统,其特征在于,所述音频设备切换模块包括:标记单元,用于当所述声卡驱动能正常使用时,为所述声卡驱动增加一标记; 屏蔽单元,用于屏蔽Android系统自带音频设备; 启用单元,用于打开具有标记的声卡驱动,以启用相应的USB无线音频设备实现音频功能。`
【文档编号】G06F3/16GK103513954SQ201210280215
【公开日】2014年1月15日 申请日期:2012年8月8日 优先权日:2012年8月8日
【发明者】齐珂 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1