摄像头的无缝切换方法、装置及终端设备与流程

文档序号:14776712发布日期:2018-06-23 03:36阅读:845来源:国知局
摄像头的无缝切换方法、装置及终端设备与流程

本发明涉及终端技术领域,特别涉及一种摄像头的无缝切换方法、装置及终端设备。



背景技术:

当前公安领域广泛使用的警务终端(如执法记录仪),通过把本地录制的视频帧实时传送到后台服务器,以实现边录边传功能。本地录制的视频可以作为后续的取证证据,服务器端的视频可方便调度员实时查看执法现场的情况,为远程调度提供方便。

警务终端对三防、续航等要求更高,其外壳偏厚、电池偏大、重量较重,导致实时录像时执法人员不能长时间手持,所以,一般在设备上添加卡扣,以挂在肩部或胸部,方便携带。但是这样不利于执法过程中执法人员行动,且容易掉落或损坏。因此,现有警务终端一般会有两个以上的摄像头,本机前、后置摄像头,还有一个USB摄像头,以方便执法人员执法时根据不同的情况用不同的摄像头进行视频录制。其中,USB摄像头体积和重量较小,通过USB加长线连接警务终端,能够实现警务终端放在固定位置,USB摄像头放在肩部或胸部。

但在录制视频过程中,例如,当由本机后置摄像头切换至USB摄像头时,由于本机后置摄像头关闭与USB摄像头启动之间存在3秒左右的时间间隔,使得警务终端接收不到录像数据,导致缺失3秒左右的录像,进而不利于执法过程中重要证据的保存和调度。



技术实现要素:

为了解决相关技术中由于切换摄像头过程中存在3秒左右的时间延迟而导致缺失3秒左右的录像视频的问题,本发明实施例提供了一种摄像头的无缝切换方法、装置及终端设备。所述技术方案如下:

第一方面,提供了一种摄像头的无缝切换方法,所述方法用于具有多个摄像头的终端,所述方法包括:

响应由当前摄像头切换到目标摄像头的指令,启动所述目标摄像头;

监听所述终端是否接收到由所述目标摄像头传送的摄像帧数据;

若是,则关闭所述当前摄像头,继续接收由所述目标摄像头传送的摄像帧数据;否则,接收由所述当前摄像头传送的摄像帧数据。

第二方面,提供了一种摄像头的无缝切换装置,所述装置用于具有多个摄像头的终端,所述装置包括:

启动模块,用于响应由当前摄像头切换到目标摄像头的指令,启动所述目标摄像头;

监听模块,用于监听所述终端是否接收到由所述目标摄像头传送的摄像帧数据;

切换模块,用于若是,则关闭所述当前摄像头,继续接收由所述目标摄像头传送的摄像帧数据;否则,接收由所述当前摄像头传送的摄像帧数据。

第三方面,提供了一种终端设备,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的所述程序指令,以执行上述第一方面所述的摄像头的无缝切换方法。

本发明实施例提供的技术方案带来的有益效果是:

在本发明实施例中,终端具有多个摄像头,当终端响应用户由当前摄像头切换到目标摄像头的指令后,启动目标摄像头;然后监听是否接收到由目标摄像头传送的摄像帧数据;若是,则关闭当前摄像头,继续接收由目标摄像头传送的摄像帧数据;否则,接收由当前摄像头传送的摄像帧数据。这样,在切换摄像头过程中,当监听到终端接收到目标摄像头上传的摄像帧数据时,才关闭当前摄像头,能够避免出现由于切换两个摄像头存在时间延迟而导致的摄像帧数据丢失,特别是丢失的摄像帧数据是重要证据时,对执法取证尤为重要。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种摄像头的无缝切换方法的流程图;

图2是摄像头选择列表的示意图;

图3是本发明实施例提供的摄像头的无缝切换装置所在设备的一种硬件结构图;

图4是本发明实施例提供的一种摄像头的无缝切换装置的框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

需要说明的是:

在本发明实施例中,上述终端可以包括警务终端、智能手机、智能电视等具有用户界面的终端,可以具有如下特点:

(1)在硬件体系上,上述终端具备处理器、存储器以及内部总线,也就是说,该终端往往是具备通信功能的微型计算机设备。另外,还可以具有多种输入部件,诸如键盘、送话器、触摸屏和摄像头等,例如该终端可以设置有本机前后置摄像头,还可以外接USB摄像头。同时,该终端往往具有多种输出部件,如受话器、显示屏等。前述输入部件和输出部件可以根据需要进行调整。

(2)在软件体系上,上述终端必须具备操作系统,如Android、iOS、Windows Mobile、Symbian、Palm等。同时,这些操作系统越来越开放,基于这些开放的操作系统平台开发的个性化应用程序层出不穷,如边录边传应用、相机应用、日程表、记事本、计算器以及各类游戏等,极大程度满足了个性化用户的需求。

(3)在通信能力上,上述终端具有灵活的接入方式和高带宽通信性能,并且能根据所选择的业务和所处的环境,自动调整所选的通信方式,从而方便用户使用。终端可以支持GSM、WCDMA、CDMA2000、TDSCDMA、Wi-Fi以及WiMAX等,从而适应多种制式网络,不仅支持语音业务,更支持多种无线数据业务,例如,警务终端将USB摄像头上传的摄像帧数据通过Wi-Fi上传至后台服务器中,以方便调度员实时查看执法现场的情况。

(4)在功能使用上,上述终端更加注重人性化、个性化和多功能化。随着计算机技术的发展,终端从“以设备为中心”的模式进入“以人为中心”的模式,集成了嵌入式计算、控制技术、人工智能技术以及生物认证技术等,充分体现了以人为本的宗旨。由于软件技术的发展,终端可以根据个人需求调整设置,更加个性化。同时,终端本身集成了众多软件和硬件,功能也越来越强大。

为方便描述,本发明实施例中的终端以具有Android系统的警务终端为例来详细说明。该警务终端具有本机前、后置摄像头,还可以连接USB摄像头等外部设备;本实施例中以后置摄像头和USB摄像头之间的切换为例进行说明。同时,该警务终端上安装有边录边传应用程序,用于将摄像头上传的摄像帧数据发送至后台服务器,以方便保存和调度现场证据。当然本发明实施例并不限于上述示例,还可以用于智能手机的多个摄像头间的无缝切换,以避免摄像帧数据的丢失。

图1是本发明实施例提供的一种摄像头的无缝切换方法的流程图,参见图1,该方法具体可以包括如下步骤。

步骤11:接收用户触发的边录边传应用程序打开指令,默认启动后置摄像头进行边录边传处理。

警务终端中的边录边传应用程序,通过把本地录制的视频帧实时传送到后台服务器,实现边录边传功能,进而上传于服务器端的录制视频可以作为后续的取证证据,以方便调度员实时查看执法现场的情况。

当接收到用户打开边录边传应用程序的指令时,默认采用本机后置摄像头传送的摄像帧数据进行边录边传至后台服务器。其中,边录边传应用程序采用下述方法获取摄像帧数据:在Camera对象上,调用Camera.PreviewCallback()函数,其定了onPreviewFrame(byte[] data,Camera camera)方法,当存在摄像帧(preview frame)时调用该方法,可以将图像数据传入保存当前录制视频的字节数组。

具体的,记录本机后置摄像头的ID为currentID,并为本机后置摄像头注册Camera.PreviewCallback_currentID()函数。当警务终端显示屏上显示摄像帧时,调用onPreviewFrame方法,摄像帧数据即传递到该onPreviewFrame方法中的数据字节数组,进而边录边传应用程序获取到摄像帧数据,实时上传至后台服务器。

步骤12:边录边传应用程序确定警务终端上连接了USB摄像头。

警务终端采用Android系统,而Android系统中预先存储USB设备插拔检测机制。也即,当系统检测到USB设备的插入动作时,上层应用会接收到广播UsbManager.ACTION_ USB_DEVICE_ ATTACHED,警务终端根据是否接收到该广播来判断是否有USB设备插入;当系统检测到USB设备的拔出动作时,上层应用会接收到广播UsbManager.ACTION_ USB_DEVICE_DETACHED,警务终端根据是否接收到该广播来判断是否有USB设备被拔出。

其中,上述广播具体为Android系统中用于通知应用的事件,例如,此处的USB设备的插拔事件。具体的,系统检测到有USB设备插拔,再发送广播通知上层应用,然后上层应用可以注册并接收该广播,进而做相应处理应对。这里,上层应用可以是使用USB设备的应用程序。

进一步的,上述广播中携带有USB设备信息,该设备信息保存在UsbDevice 数据类型中,包含设备制造商(vendorId;productId)、设备类型(deviceClass,设备类;deviceSubClass,设备子类)等信息。因此,系统可根据上述广播中携带的USB设备信息,判断插入或拔出设备是否为USB摄像头。

由此,警务终端检测到其上连接有USB摄像头的步骤具体如下:

当警务终端检测到USB设备的插入动作时,接收包含USB设备信息的广播;

根据USB设备信息中的设备类型,判断该USB设备是否为USB摄像头;

若设备类型中的设备类和设备子类为预设值,则确定该USB设备为USB摄像头。

具体的,当警务终端检测到USB设备的插入动作时,上层应用接收包含USB设备信息的广播。也即,通过调用UsbManager.getDeviceList()可以得到警务终端设备上当前连接的所有USB设备。然后从该广播中获取USB设备信息,再从USB设备信息中得到设备类型;通过过滤条件,当该设备类型中的deviceClass值为预设值239、deviceSubClass值为预设值2时,上层应用可以确定插入的USB设备为USB摄像头,也即边录边传应用程序确定警务终端外接了USB摄像头。

步骤13:接收用户触发的摄像头切换指令,弹出摄像头选择列表。

步骤14:接收用户触发的摄像头选择指令,启动USB摄像头。

在本发明实施例中,警务终端的相机模块中重新封装一层虚拟的摄像头控制层,用于管理终端系统中的多个摄像头的启动和关闭,并将多个摄像头分别传送的摄像帧数据转发至边录边传应用程序。

当接收到用户触发的摄像头切换指令时,摄像头控制层响应该摄像头切换指令,在警务终端的显示屏界面,弹出摄像头选择列表。其中,参见图2所示的摄像头选择列表的示意图,该摄像头选择列表中显示了当前警务终端中的多个摄像头的ID和/或名称,例如本机前置摄像头ID为camera1,本机后置摄像头ID为camera2,外接USB摄像头ID为camera3。

进一步的,在该摄像头选择列表中,当接收到用户触发的摄像头选择指令时,摄像头控制层响应该摄像头选择指令,选择USB摄像头的ID camera3,然后启动USB摄像头进行录像。

步骤15:监听边录边传应用程序是否接收到由USB摄像头传送的摄像帧数据;若是,则执行步骤16;否则,执行步骤17。

步骤16:关闭本机后置摄像头,继续接收由USB摄像头传送的摄像帧数据。

步骤17:继续接收由本机后置摄像头传送的摄像帧数据。

当警务终端启动USB摄像头后,开始进行录像,同时记录USB摄像头的ID为newID,并为USB摄像头注册Camera.PreviewCallback_newID()函数。当然为USB摄像头注册的过程也可以在USB摄像头连接至警务终端时进行,本发明实施例不局限于此。

由于本机摄像头切换至USB摄像头过程中存在时间延迟,即本机后置摄像头关闭与USB摄像头启动之间存在3秒左右的时间间隔,因此为保证不丢失这3秒左右的录像视频,在实际应用中,通过回调Camera.PreviewCallback_newID()函数中的onPreviewFrame方法,判断该onPreviewFrame方法中的保存当前录制视频的字节数组里是否传入摄像帧数据,来监听边录边传应用程序是否接收到由USB摄像头传送的摄像帧数据。

若监听到该onPreviewFrame方法中的保存当前录制视频的字节数组里传入摄像帧数据,则表示摄像头控制层接收到由USB摄像头传送的摄像帧数据,此时摄像头控制层根据本机后置摄像头ID来关闭本机后置摄像头,继续接收由USB摄像头传送的摄像帧数据,进而将摄像帧数据转发至边录边传应用程序,再由边录边传应用程序上传至后台服务器。

若未监听到该onPreviewFrame方法中的保存当前录制视频的字节数组里传入摄像帧数据,则表示摄像头控制层未接收到由USB摄像头传送的摄像帧数据,此时USB摄像头还不能进行录像(原因可能是USB摄像头还未启动成功,也可能是USB摄像头启动成功,但摄像帧数据还未传入上述字节数组中),摄像头控制层仍然以Camera.PreviewCallback_currentID()函数定义的onPreviewFrame方法中传入的本机后置摄像头的摄像帧数据,来实现边录边传。

因此,在上述切换摄像头的过程中,当监听到边录边传应用程序接收到USB摄像头上传的摄像帧数据时,表示USB摄像头可以进行录像,才关闭本机后置摄像头;否则,不关闭本机后置摄像头,仍然接收本机后置摄像头上传的摄像帧数据来实现边录边传,直到边录边传应用程序接收到USB摄像头上传的摄像帧数据才关闭本机后置摄像头。这样能够避免出现由于切换两个摄像头存在时间延迟而导致的摄像帧数据丢失问题,特别是丢失的摄像帧数据是重要证据时,对执法取证尤为重要。

进一步的,当接收到用户触发的由USB摄像头切换回本机后置摄像头的指令时,启动本机后置摄像头;监听边录边传应用程序是否接收到由本机后置摄像头传送的摄像帧数据;若是,则关闭USB摄像头,继续接收由本机后置摄像头传送的摄像帧数据;否则,不关闭USB摄像头,仍然接收由USB摄像头传送的摄像帧数据来实现边录边传。这样来避免出现由于切换两个摄像头存在时间延迟而导致的摄像帧数据丢失问题。

需要说明的是,上述各步骤只是示例性的描述了本发明的实现过程,实际应用中,本发明并不局限于上述各步骤的执行顺序。

基于同一技术构思,本发明还提供了一种摄像头的无缝切换装置的实施例。

本发明摄像头的无缝切换装置的实施例可以应用在终端设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,图3是摄像头的无缝切换装置所在设备的一种硬件结构图,除了图3所示的处理器以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,具体如前所述的移动终端。

图4是本发明实施例提供的一种摄像头的无缝切换装置的框图,参见图4,其中,该装置用于具有多个摄像头的终端,该装置包括启动模块41、监听模块42、切换模块43。

启动模块41,用于响应由当前摄像头切换到目标摄像头的指令,启动该目标摄像头;

监听模块42,用于监听终端是否接收到由该目标摄像头传送的摄像帧数据;

切换模块43,用于若是,则关闭当前摄像头,继续接收由该目标摄像头传送的摄像帧数据;否则,接收由当前摄像头传送的摄像帧数据。

优选的,启动模块41,具体用于:响应摄像头切换指令;在终端的显示界面,弹出摄像头选择列表;在所述列表中,响应摄像头选择指令后,启动目标摄像头。

优选的,启动模块41,还用于:根据摄像头选择列表中包括的多个摄像头的ID,响应选择的目标摄像头的ID,并启动目标摄像头;

优选的,监听模块42,具体用于:为目标摄像头注册Camera.PreviewCallback()函数,通过回调上述函数中的onPreviewFrame方法,来监听该onPreviewFrame方法中的指定字节数组是否接收到摄像帧数据。

需要说明的是:上述实施例提供的摄像头的无缝切换装置在进行摄像头切换处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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