一种基于Android系统的多摄像头切换使用方法和装置与流程

文档序号:14179269阅读:354来源:国知局
一种基于Android系统的多摄像头切换使用方法和装置与流程
本申请涉及计算机技术,尤其涉及一种基于android系统的多摄像头切换使用方法和装置。
背景技术
:随着android系统的流行,越来越多的设备已经开始基于android系统进行开发,例如智能白板、智能平板等。现有的android系统基于linux内核,对usb总线接口即插即用和热插拔的支持非常完善。然而,现有的android系统,仅支持前后置摄像头,无法支持多于两个摄像头。但是,对于某些android设备,用户希望该android设备能够支持多于两个摄像头,以实现多角度拍摄的需求。例如,当将智能平板应用于教育教学中时,为丰富教学内容,用户希望该智能平板能够支持多个摄像头。然而,现有的android设备不支持多于两个摄像头,不能满足用户需求。技术实现要素:有鉴于此,本申请提供一种基于android系统的多摄像头切换使用方法和装置,以解决现有技术中android设备无法支持多于两个摄像头、应用不便的问题。本申请第一方面提供一种基于android系统的多摄像头切换使用方法,包括:更新物理路径索引表;其中,所述物理路径索引表表征当前时刻android设备连接的摄像头的标识和摄像头的物理路径之间的对应关系;当存在目标摄像头调用指令时,根据所述物理路径索引表确定目标摄像头的物理路径;将硬件抽象hal层默认访问路径替换为确定出的物理路径,以访问目标摄像头。进一步地,所述物理路径索引表包括应用层索引表和hal层索引表,其中,所述应用层索引表记录有摄像头的名称和摄像头的总线标识busid之间的对应关系,所述hal层索引表表征摄像头的busid和摄像头的物理路径之间的对应关系;所述方法还包括,将所述应用层索引表中记录的摄像头的名称展示给用户。进一步地,所述更新物理路径索引表,具体包括:根据接收到的增删改指令更新所述应用层索引表;根据目标摄像头调用指令更新所述hal层索引表。进一步地,所述增删改指令和所述目标摄像头调用指令为用户基于所展示的摄像头的名称触发的指令;所述根据所述物理路径索引表确定目标摄像头的物理路径,具体包括:根据目标摄像头的名称和所述应用层索引表,确定目标摄像头的busid;根据确定出的busid和所述hal层索引表,确定目标摄像头的物理路径。进一步地,所述更新所述应用层索引表,具体包括:获取所述android设备当前时刻连接的每个摄像头的名称和所述每个摄像头的busid;根据获取到的每个摄像头的名称和所述每个摄像头的busid,更新所述应用层索引表。进一步地,所述hal层索引表记录有摄像头的busid和摄像头的物理路径之间的对应关系;所述更新所述hal层索引表,具体包括:获取所述android设备当前时刻连接的每个摄像头的busid和所述每个摄像头的物理路径;将获取到的每个摄像头的busid和该摄像头的物理路径记录到所述hal层索引表中。进一步地,所述hal层索引表记录有摄像头的busid,各摄像头的busid在所述hal层索引表中的数组下标号与各摄像头的物理路径的索引值相等;所述更新所述hal层索引表,具体包括:获取所述android设备当前时刻连接的每个摄像头的busid和所述每个摄像头的物理路径;将获取到的每个摄像头的busid记录到数组下标号等于该摄像头的物理路径的索引值的表项中。进一步地,所述获取所述android设备当前时刻连接的每个摄像头的busid,具体包括:遍历每个摄像头的配置文件,通过每个摄像头的配置文件中的device的软链接获取每个摄像头的busid。进一步地,所述获取所述android设备当前时刻连接的每个摄像头的busid,具体包括:查看任意一个摄像头的配置文件,获取所述android设备当前时刻分配的所有busid;遍历每个摄像头的配置文件,将每个摄像头的配置文件中的video的软链接的分割字符串逐一与所述android设备当前时刻分配的所有busid匹配,得到每个摄像头的busid。本申请第二发明提供一种基于android系统的多摄像头切换使用装置,包括:处理模块和替换模块,其中,所述处理模块,用于更新物理路径索引表,其中,所述物理路径索引表表征当前时刻android设备连接的摄像头的标识和摄像头的物理路径之间的对应关系;所述处理模块,还用于当存在目标摄像头调用指令时,根据所述物理路径索引表确定目标摄像头的物理路径;所述替换模块,用于将硬件抽象hal层默认访问路径替换为确定出的物理路径,以访问目标摄像头。进一步地,所述物理路径索引表包括应用层索引表和hal层索引表,其中,所述应用层索引表记录有摄像头的名称和摄像头的总线标识busid之间的对应关系,所述hal层索引表表征摄像头的busid和摄像头的物理路径之间的对应关系;所述处理模块,还用于将所述应用层索引表中记录的摄像头的名称展示给用户。进一步地,所述处理模块,具体用于根据接收到的增删改指令更新所述应用层索引表,并根据目标摄像头调用指令更新所述hal层索引表。进一步地,所述增删改指令和所述目标摄像头调用指令为用户基于所展示的摄像头的名称触发的指令;所述处理模块,具体用于根据目标摄像头的名称和所述应用层索引表,确定目标摄像头的busid,并根据确定出的busid和所述hal层索引表,确定目标摄像头的物理路径。进一步地,所述处理模块,具体用于获取所述android设备当前时刻连接的每个摄像头的名称和所述每个摄像头的busid,并根据获取到的每个摄像头的名称和所述每个摄像头的busid,更新所述应用层索引表。进一步地,所述hal层索引表中记录有摄像头的busid和摄像头的物理路径之间的对应关系;所述处理模块,具体用于获取所述android设备当前时刻连接的每个摄像头的busid和所述每个摄像头的物理路径,并将获取到的每个摄像头的busid和该摄像头的物理路径记录到所述hal层索引表中。进一步地,所述hal层索引表中记录有摄像头的busid,各摄像头的busid在所述hal层索引表中的数组下标号与各摄像头的物理路径的索引值相等;所述处理模块,具体用于获取所述android设备当前时刻连接的每个摄像头的busid和所述每个摄像头的物理路径,并将获取到的每个摄像头的busid记录到数组下标号等于该摄像头的物理路径的索引值的表项中。进一步地,所述处理模块,具体用于遍历每个摄像头的配置文件,通过每个摄像头的配置文件中的device的软链接获取每个摄像头的busid。进一步地,所述处理模块,具体用于查看任意一个摄像头的配置文件,获取所述设备当前时刻分配的所有busid;所述处理模块,还用于遍历每个摄像头的配置文件,将每个摄像头的配置文件中的video的软链接的分割字符串逐一与所述设备当前时刻分配的所有busid匹配,得到每个摄像头的busid。本申请提供的基于android系统的多摄像头切换使用方法和装置,通过更新物理路径索引表,进而在存在目标摄像头调用指令时,根据上述物理路径索引表确定目标摄像头的物理路径,并将hal层默认访问路径替换为确定出的物理路径。这样,基于该方法,当android设备连接多个摄像头时,可将该多个摄像头对应的物理路径存入物理路径索引表中,进而在存在目标摄像头调用指令时,可根据物理路径索引表确定目标摄像头的物理路径,并将hal层默认访问路径替换为确定出的物理路径,以访问目标摄像头,这样,可弥补现有的andorid系统的不足,使andorid设备能够支持多个摄像头,可满足用户需求。此外,本申请提供的基于android系统的多摄像头切换使用方法和装置,可应用于各种android设备,通用性和可移植性较好。附图说明图1为本申请基于android系统的多摄像头切换使用方法和装置的应用场景示意图;图2为本申请基于android系统的多摄像头切换使用方法实施例一的流程图;图3为本申请基于android系统的多摄像头切换使用方法实施例二的流程图;图4为本申请一示例性实施例示出的基于android系统的多摄像头切换使用装置所在终端设备的硬件结构示意图;图5为本申请基于android系统的多摄像头切换使用装置实施例一的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本申请提供一种基于android系统的多摄像头切换使用方法和装置,以解决现有技术中android系统不支持多于两个摄像头、无法满足用户需求的问题。图1为本申请基于android系统的多摄像头切换使用方法和装置的应用场景示意图。请参照图1,本申请提供的基于android系统的多摄像头切换使用方法和装置,可应用于运行android系统的终端设备(即android设备),例如,可应用于运行android系统的手机、智能白板、智能平板等。例如,图1所示应用场景中,将本申请提供的基于android系统的多摄像头切换使用方法和装置应用于手机中,该手机包括前后置摄像头(图1中的摄像头a和摄像头b),此外,该手机还通过外部接口连接有两个外部摄像头(摄像头c和摄像头d)。请继续参照图1,当将本申请提供的基于android系统的多摄像头切换使用方法和装置应用于图1所示的手机中时,此时,可解决现有技术中android设备不支持多于两个摄像头的问题,通过该方法,图1所示手机可支持多个摄像头,可访问任意一个摄像头(图1中,该手机可以访问四个摄像头中的任意一个摄像头)。下面给出几个具体的实施例,用于详细介绍本申请的技术方案,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。图2为本申请基于android系统的多摄像头切换使用方法实施例一的流程图。本实施例的执行主体为android设备。请参照图2,本实施例提供的方法,可以包括:s101、更新物理路径索引表;其中,上述物理路径索引表表征当前时刻android设备连接的摄像头的标识和摄像头的物理路径之间的对应关系。具体的,上述物理路径索引表可以是android设备首次检测到有外部摄像头插入时,根据android设备上已存储的各摄像头的配置文件创建的,也可以是android设备在接收到创建指令时,根据android设备上已存储的各摄像头的配置文件创建的。需要说明的是,当android设备运行时,android设备会检测当前时刻连接的摄像头,生成当前时刻连接的各摄像头的配置文件(即会生成该android设备当前时刻连接的各外部摄像头的配置文件、以及该android设备的前后置摄像头的配置文件)。因此,可根据android设备上已存储的各摄像头的配置文件创建物理路径索引表。进一步地,摄像头的标识可以是摄像头的名称或摄像头的总线标识busid。例如,在本申请一可能的实现方式中,物理路径索引表可以仅包括硬件抽象(hardwareabstrationlayer,简称hal)层索引表,该hal层索引表表征摄像头的总线标识和摄像头的物理路径的对应关系。再例如,在本申请另一可能的实现方式中,物理路径索引表包括应用层索引表和hal层索引表,其中,上述应用层索引表记录有摄像头的名称和摄像头的总线标识busid之间的对应关系,上述hal层索引表表征摄像头的busid和摄像头的物理路径之间的对应关系(参见图3所示实施例,此处不再赘述)。具体的,当前时刻android设备连接的摄像头包括android设备的前后置摄像头、以及通过外部接口与android设备连接的外部摄像头。本步骤中,可根据android设备上已存储的各摄像头的配置文件更新物理路径索引表(需要说明的是,当外部摄像头与android设备断开连接时,android设备上生成的该外部摄像头对应的配置文件相应的不再存在),以使更新后的物理路径索引表表征当前时刻android设备连接的摄像头的标识和摄像头的物理路径之间的对应关系。关于更新物理路径索引表的具体实现过程和实现原理将在下面的实施例详细介绍,此处不再赘述。s102、当存在目标摄像头调用指令时,根据上述物理路径索引表确定目标摄像头的物理路径。需要说明的是,目标摄像头调用指令可以是用户输入的指令,也可以是android设备生成的指令。当目标摄像头调用指令为用户输入的指令时,该目标摄像头调用指令携带目标摄像头的名称,此时,物理路径索引表包括应用层索引表和hal索引表,此时,可根据物理路径索引表确定目标摄像头的物理路径。相应地,当目标摄像头调用指令为android设备生成的指令时,此时,目标摄像头调用指令携带目标摄像头的busid,此时,物理路径索引表可以仅包括hal层索引表,或包括应用层索引表和hal层索引表,以通过物理路径索引表确定目标摄像头的物理路径。下面以“目标摄像头调用指令为android设备生成的指令,且物理路径索引表仅包括hal层索引表”为例进行说明。例如,在本申请一可能的实现方式中,android设备可以通过驱动层算法、结合红外感知技术来确定待访问的目标摄像头,进而生成目标摄像头调用指令(此时,目标摄像头调用指令携带目标摄像头的busid)。例如,android设备通过驱动层算法,确定待访问的目标摄像头为busid为1-1.3的摄像头,并生成调用busid为1-1.3的摄像头的目标摄像头调用指令。此时,物理路径索引表表征摄像头的总线标识busid和摄像头的物理路径之间的对应关系。这样,便可从物理路径索引表中查找到目标摄像头的busid对应的物理路径,即确定出目标摄像头的物理路径。需要说明的是,关于驱动层算法如何确定待访问的目标摄像头,并生成目标摄像头调用指令的具体实现过程和实现原理可以参见现有技术的描述,此处不再赘述。s103、将硬件抽象hal层默认访问路径替换为确定出的物理路径,以访问目标摄像头。具体的,当确定出目标摄像头的物理路径后,本步骤中,可将hal层默认访问路径替换为确定出的物理路径,这样,便可以访问目标摄像头。本实施例提供的方法,通过更新物理路径索引表,进而当存在目标摄像头调用指令时,根据物理路径索引表确定目标摄像头的物理路径,进而将hal层默认访问路径替换为确定出的物理路径,以访问目标摄像头。这样,基于该方法,当android设备连接多个摄像头时,可将该多个摄像头对应的物理路径存入物理路径索引表中,进而在存在目标摄像头调用指令时,可根据物理路径索引表确定目标摄像头的物理路径,并将hal层默认访问路径替换为确定出的物理路径,以访问目标摄像头,这样,可弥补现有的andorid系统的不足,使andorid设备能够动态支持多个摄像头,可满足用户需求。此外,本实施例提供的方法,可应用于各种android设备,通用性和可移植性较好。下面给出一个更具体的实施例,用于详细介绍本申请的技术方案。图3为本申请基于android系统的多摄像头切换使用方法实施例二的流程图。本实施例涉及的是多摄像头切换使用方法的整个过程。本实施例提供的方法,物理路径索引表包括应用层索引表和hal层索引表,其中,上述应用层索引表记录有摄像头的名称和摄像头的总线标识busid之间的对应关系,上述hal层索引表表征摄像头的busid和摄像头的物理路径之间的对应关系。请参照图3,本实施例提供的方法,可以包括:s201、将上述应用层索引表中记录的摄像头的名称展示给用户。需要说明的是,应用层索引表和hal层索引表可以是终端设备在首次检测到有外部摄像头插入时创建的。例如,在图1所示的应用场景中,应用层索引表如表1所示:表1摄像头的名称摄像头的busida1-1.4.3b1-1.5.4c1-1.5.3d1-1.3.1本步骤中,就将表1中记录的摄像头的名称展示给用户,例如,在一实施例中,可以将如下内容展示给用户:摄像头名称:摄像头a、摄像头b、摄像头c、摄像头d。本实施例提供的方法,通过将应用层索引表中记录的摄像头的名称展示给用户,一方面,可使用户了解android设备当前时刻连接的摄像头的情况,另一方面,通过将应用层索引表中记录的摄像头的名称展示给用户,可提供一人机交互界面,用户可基于所展示的摄像头的名称触发增删改指令和目标摄像头调用指令。其中,增删改指令用于指示android设备更新应用层索引表,以使更新后的应用层索引表记录有当前时刻android设备连接的每个摄像头的名称和上述每个摄像头的busid之间的对应关系。s202、根据接收到的增删改指令更新上述应用层索引表。需要说明的是,上述增删改指令可以为用户基于所展示的摄像头的名称触发的指令。具体的,当将摄像头的名称展示给用户后,此时,用户可基于所展示的摄像头的名称触发增删改指令,当android设备接收到增删改指令时,就更新上述应用层索引表。例如,在上面的例子中,用于可通过点击屏幕上显示的“摄像头名称”字段来触发增删改指令。这样,当用户点击屏幕上显示的“摄像头名称”字段时,此时,终端设备便更新上述应用层索引表。具体的,更新上述应用层索引表的具体过程,可以包括以下步骤:(1)获取android设备当前时刻连接的每个摄像头的名称和上述每个摄像头的busid。具体的,例如,android设备当前时刻连接有五个摄像头(相比于图1,新插入了一个外部摄像头e。此时,android设备中相应的存储有这五个摄像头的配置文件,这五个摄像头的配置文件分别为/sys/class/video4linx/下的video0、video1、video2、video3、video4),本步骤中,就遍历每个摄像头的配置文件,通过每个摄像头的配置文件来获取每个摄像头的名称和上述每个摄像头的busid。即遍历/sys/class/video4linx/下的video0、video1、video2、video3、video4,通过“name”属性来获取摄像头的名称。此外,在本申请一可能的实现方式中,本步骤中,可通过遍历/sys/class/video4linx/下的video0、video1、video2、video3、video4中的device的软链接,进而通过对device的软链接进行分割字符来获取每个摄像头的busid。具体的,例如,在一实施例中,查看/sys/class/video4linx/下的video0,读取到如下内容:此时,可通过“/”和“:”对device的软链接“../../../1-1.3:1.0”进行分割字符,得到该摄像头的busid为1-1.3。需要说明的是,由于device的软链接中仅包含一个具有busid属性的分割字符串,因此,通过对device的软链接进行分割字符,可直接得到该摄像头的busid。此外,下面的实施例将给出另外一种获取busid的方法,此处不再赘述。(2)根据获取到的每个摄像头的名称和上述每个摄像头的busid,更新上述应用层索引表。具体的,当获取到每个摄像头的名称和上述每个摄像头的busid后,本步骤中,就根据获取到的每个摄像头的名称和上述每个摄像头的busid,更新上述应用层索引表,以使更新后的应用层索引表记录有当前时刻终端设备连接的每个摄像头的名称和上述每个摄像头的busid之间的对应关系。具体的,即对于获取到的任一个摄像头的名称和该摄像头的busid,若原应用层索引表中没有记录包括该名称的对应关系,此时,说明该摄像头为新插入的摄像头,此时,就将该摄像头的名称和该摄像头的busid的对应关系记录到应用层索引表中。此外,对于原应用层索引表中记录的任一条对应关系,若该条对应关系中记录的摄像头的名称不是获取到的任一个名称,此时,说明该摄像头已经与设备不再连接,此时,就将原应用层索引表中的该条对应关系删除。结合上面的例子,例如,本实施例中,更新后的应用层索引表如表2所示:表2摄像头的名称摄像头的busida1-1.4.3b1-1.5.4c1-1.5.3d1-1.3.1e1-1.3.2s203、根据目标摄像头调用指令更新上述hal层索引表。具体的,本实施例中,该目标摄像头调用指令可以为用户基于所展示的摄像头的名称触发的指令,也可以为android设备生成的指令(参见实施例一的描述)。下面以目标摄像头调用指令为用户基于所展示的摄像头的名称触发的指令为例进行说明。需要说明的是,当将应用层索引表中记录的摄像头的名称展示给用户后,且用户基于所展示的摄像头的名称触发了增删改指令后,此时,所展示的摄像头的名称为当前时刻设备连接的所有摄像头的名称(结合上面的例子,此时,所展示的内容为:摄像头:摄像头a、摄像头b、摄像头c、摄像头d、摄像头e),此时,用户可通过点击其中任意一个摄像头的名称来触发目标摄像头调用指令,以通过目标摄像头调用指令选定目标摄像头。例如,在一实施例中,此时,用户想调用摄像头d,此时,用户点击屏幕上显示的“摄像头d”字段触发目标摄像头调用指令。相应地,当终端设备接收到目标摄像头调用指令时,便确定了目标摄像头,此时,终端设备可根据目标摄像头调用指令更新上述hal层索引表。进一步地,hal层索引表表征摄像头的busid和摄像头的物理路径之间的对应关系。可选地,hal层索引表中可直接记录有摄像头的busid和摄像头的物理路径之间的对应关系。或者是,hal层索引表中仅记录有摄像头的busid,各摄像头的busid在上述hal层索引表中的数组下标号与各摄像头的物理路径的索引值相等。当hal层索引表中直接记录有摄像头的busid和摄像头的物理路径之间的对应关系时,hal层索引表可以如表3所示,当hal层索引表中仅记录有摄像头的busid时,hal层索引表可以如表4所示:需要说明的是,当hal层索引表中记录有摄像头的busid和摄像头的物理路径之间的对应关系时,可按照如下方法来更新hal层索引表,该方法可以包括如下步骤:(1)获取android设备当前时刻连接的每个摄像头的busid和上述每个摄像头的物理路径。具体的,可遍历每个摄像头的配置文件,获取每个摄像头的物理路径,并通过每个摄像头的配置文件中的device的软链接获取每个摄像头的busid.即遍历/sys/class/video4linx/下的video0、video1、video2、video3、video4,获取每个摄像头的物理路径,进而通过video下的device的软链接获取各物理路径对应的busid。此外,在本申请一可能的实现方式中,还可以通过如下方法获取各物理路径对应的busid,该方法包括:1、通过查看任意一个摄像头的配置文件,获取上述设备当前时刻分配的所有busid。例如,在一可能的实现方式中,通过查看如下配置文件:“/sys/class/video4linux/video0/device/driver1-1.4.3:1.01-1.5.4:1.01-1.5.3:1.01-1.3.1:1.11-1.3.2:1.1blindmodulenew_id”获取到上述设备当前时刻分配的所有busid为1-1.4.3、1-1.5.4、1-1.5.3、1-1.3.1、1-1.3.2。需要说明的是,通过该步骤,可获取到上述android设备当前时刻分配的所有busid。即获取到所有摄像头的busid,但是,通过本步骤,获取到busid时,并不知道busid与摄像头的对应关系,也不知道busid与物理路径的对应关系。2、遍历每个摄像头的配置文件,将每个摄像头的配置文件中的video的软链接的分割字符串逐一与上述设备当前时刻分配的所有busid匹配,得到每个摄像头的busid。具体的,即遍历sys/calss/video4linux/下的video0,video1,…,videon,进而将video0,video1,…,videon的软链接的分割字符串逐一与上述设备当前时刻分配的所有busid匹配,得到video0对应的busid,…,videon对应的busid。例如,在一实施例中,video0的软链接如下所示:“/sys/class/video4linuxroot...2017-07-1316:51video0–>../../../3-1/1-1.3:1.0/video4linux/video0”此时,对video的软链接的按照“/”和“:”进行分割字符,得到多个分割字符串,在这多个分割字符串中,有多个具有busid属性的字符串,因此,不能直接确定出该物理路径对应的busid,需要将分割字符串逐一与上述设备当前时刻分配的所有busid匹配,得到每个摄像头的busid。具体的,例如,将video的软链接的分割字符串逐一与上述设备当前时刻分配的所有busid匹配,确定出一个匹配的busid,该匹配的busid即为video对应的busid。(2)将获取到的每个摄像头的busid和该摄像头的物理路径记录到hal层索引表中。结合上面的例子,更新后的hal层索引表如表5所示:表5摄像头的busid摄像头的物理路径1-1.4.3/dev/vidio01-1.3.1/dev/vidio31-1.5.3/dev/vidio21-1.5.4/dev/vidio11-1.3.2/dev/vidio4需要说明的是,本步骤中,在将获取到的每个摄像头的busid和该摄像头的物理路径记录到hal层索引表中,还可以将原hal索引表中的对应关系删除,以使更新后的hal索引表中仅记录有设备当前时刻连接的每个摄像头的busid和上述每个摄像头的物理路径之间的对应关系。进一步地,当hal层索引表中记录有摄像头的busid时,可通过如下方法来更新更新hal层索引表,该方法包括:(1)获取上述设备当前时刻连接的每个摄像头的busid和上述每个摄像头的物理路径。该步骤的具体实现过程及实现原理可以参见前面的描述,此处不再赘述。(2)将获取到的每个摄像头的busid记录到数组下标号等于该摄像头的物理路径的索引值的表项中。本步骤中,当获取到每个摄像头的busid后,便将获取到的每个摄像头的busid记录到数组下标号等于该摄像头的物理路径的索引值的表项中。结合上面的例子,更新后的hal层索引表如表6所示:表61-1.4.31-1.5.41-1.5.31-1.3.11-1.3.2需要说明的是,若获取到的busid不包含原hal层索引表中记录的某个busid时,此时,还可以将原hal层索引表中记录的该busid删除。s204、根据物理路径索引表,确定目标摄像头的物理路径。具体的,结合实施例一的描述,当目标摄像头调用指令为android设备生成的指令时,此时,该目标摄像头调用指令携带目标摄像头的busid,此时,可直接根据hal层索引表确定目标摄像头的物理路径。进一步地,结合上面的例子,当目标摄像头调用指令为基于所展示的摄像头的名称触发的指令时,此时,目标摄像头调用指令携带目标摄像头的名称,此时,可根据目标摄像头的名称和上述应用层索引表,确定目标摄像头的busid,然后根据确定出的busid和hal层索引表确定该busid对应的物理路径(即确定目标摄像头的物理路径)。结合上面的例子,当用户通过点击屏幕上显示的“摄像头d”字段触发了目标摄像头调用指令时,此时,android设备根据应用层索引表(表2),确定目标摄像头的busid为1-1.3.1。进一步地,当hal层索引表记录有摄像头的busid和摄像头的物理路径之间的对应关系时,此时,通过hal层索引表,可直接获取到目标摄像头的物理路径,例如,通过表5,获取到目标摄像头的物理路径为/dev/vidio3。此外,当hal层索引表仅记录有摄像头的busid,且各摄像头的busid在hal层索引表中的数组下标号与各摄像头的物理路径的索引值相等。此时,通过hal层索引表,可确定目标摄像头的busid在hal层索引表中的数组下标号,进而确定目标摄像头的物理路径的索引值,确定目标摄像头的物理路径。例如,当hal层索引表如表6所示时,此时,通过查表,可确定目标摄像头的busid(1-1.3.1)在hal层索引表中的数组下标号为3,进一步地,确定目标摄像头的物理路径的索引值为3,进而确定目标摄像头的物理路径为/dev/vidio3。需要说明的是,本步骤中,当应用层程序确定出目标摄像头的busid时,会将该busid设置为系统属性,以使hal层程序能够获取该busid。s205、将hal层默认访问路径替换为确定出的物理路径,以访问目标摄像头。本实施例提供的方法,通过将物理路径索引表设置为包括应用层索引包和hal层索引表,并将应用层索引表中记录的摄像头的名称展示给用户,这样,基于所展示的摄像头的名称,用户可触发增删改指令和目标摄像头调用指令,android设备进而可根据接收到的增删指令更新应用层索引表,并根据目标摄像头调用指令更新hal层索引表,进而根据应用层索引表和hal层索引表确定目标摄像头的物理路径,并将hal层默认访问路径替换为确定出的物理路径。这样,基于该方法,可弥补现有的android系统的不足,使得android设备能够支持多于两个摄像头,以满足用户需求。此外。本实施例提供的方法,基于展示的摄像头的名称,用户可主动选择待访问的目标摄像头,可进一步满足用户需求。与前述基于android系统的多摄像头切换使用方法的实施例相对应,本申请还提供了基于android系统的多摄像头切换使用装置的实施例。本申请基于android系统的多摄像头切换使用装置的实施例可以应用在android设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在android设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请基于android系统的多摄像头切换使用装置所在android设备的一种硬件结构图,除了图4所示的处理器、内存、外部接口以及非易失性存储器之外,实施例中装置所在的android设备通常根据该基于android系统的多摄像头切换使用装置的实际功能,还可以包括其他硬件,对此不再赘述。图5为本申请基于android系统的多摄像头切换使用装置实施例一的结构示意图。该装置可以通过软件、硬件或软硬结合的方式实现。请参照图5,本实施例提供的装置,可以包括:处理模块100和替换模块200,其中,所述处理模块100,用于更新物理路径索引表,其中,所述物理路径索引表表征当前时刻android设备连接的摄像头的标识和摄像头的物理路径之间的对应关系;所述处理模块100,还用于当存在目标摄像头调用指令时,根据上述物理路径索引表确定目标摄像头的物理路径;所述替换模块200,用于将硬件抽象hal层默认访问路径替换为确定出的物理路径,以访问目标摄像头。本实施例的装置,可用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。进一步地,所述物理路径索引表包括应用层索引表和hal层索引表,其中,所述应用层索引表记录有摄像头的名称和摄像头的总线标识busid之间的对应关系,所述hal层索引表表征摄像头的busid和摄像头的物理路径之间的对应关系;所述处理模块100,还用于将所述应用层索引表中记录的摄像头的名称展示给用户。进一步地,所述处理模块100,具体用于根据接收到的增删改指令更新所述应用层索引表,并根据目标摄像头调用指令更新所述hal层索引表。进一步地,所述增删改指令和所述目标摄像头调用指令为用户基于所展示的摄像头的名称触发的指令;所述处理模块100,具体用于根据目标摄像头的名称和所述应用层索引表,确定目标摄像头的busid,并根据确定出的busid和所述hal层索引表,确定目标摄像头的物理路径。进一步地,所述处理模块100,具体用于获取所述android设备当前时刻连接的每个摄像头的名称和所述每个摄像头的busid,并根据获取到的每个摄像头的名称和所述每个摄像头的busid,更新所述应用层索引表。进一步地,所述hal层索引表中记录有摄像头的busid和摄像头的物理路径之间的对应关系;所述处理模块100,具体用于获取所述android设备当前时刻连接的每个摄像头的busid和所述每个摄像头的物理路径,并将获取到的每个摄像头的busid和该摄像头的物理路径记录到所述hal层索引表中。进一步地,所述hal层索引表中记录有摄像头的busid,各摄像头的busid在所述hal层索引表中的数组下标号与各摄像头的物理路径的索引值相等;所述处理模块100,具体用于获取所述android设备当前时刻连接的每个摄像头的busid和所述每个摄像头的物理路径,并将获取到的每个摄像头的busid记录到数组下标号等于该摄像头的物理路径的索引值的表项中。进一步地,所述处理模块100,具体用于遍历每个摄像头的配置文件,通过每个摄像头的配置文件中的device的软链接获取每个摄像头的busid。进一步地,所述处理模块100,具体用于查看任意一个摄像头的配置文件,获取所述设备当前时刻分配的所有busid;所述处理模块100,还用于遍历每个摄像头的配置文件,将每个摄像头的配置文件中的video的软链接的分割字符串逐一与所述设备当前时刻分配的所有busid匹配,得到每个摄像头的busid。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1