一种Android实现带摄像头采集的录屏推流的解决方法技术

技术编号:18240608 阅读:58 留言:0更新日期:2018-06-17 05:25
本发明专利技术公开了一种Android实现带摄像头采集的录屏推流的解决方法,包含以下步骤:A、使用TextureView展示当前摄像头采集的内容并展示到屏幕上;B、使用服务来控制摄像头悬浮窗的展示生命周期;C、使用VirtualDisplay获取屏幕和摄像头悬浮窗的图像元数据;D、使用MediaCodec将VirtualDisplay获取的图像元数据封装生成视频数据流;本发明专利技术解决了在教育类直播软件老师直播讲课的过程中,老师使用Android推流时存在的直播内容不丰富的问题,让学生技能看到老师的声音和画面,又能看到老师在手机上的操作,丰富了老师使用Android推流的软件在教学过程中的内容的可扩展性。 1

A Android solution for recording screen pushing with camera acquisition

The present invention discloses a method for Android to implement a video recording screen pushing with a camera, which includes the following steps: A, using TextureView to display the content collected by the current camera and displaying it on the screen; B, using the service to control the life cycle of the camera suspension window; C, the use of VirtualDisplay to obtain the screen and the camera. Image metadata such as the head suspension window; D, using MediaCodec to encapsulate the image metadata obtained by VirtualDisplay to generate video data stream; the invention solves the problem that the teacher uses Android to push the stream when the teacher uses the direct sowing of the direct sowing of the education class, and lets the students see the teacher's skills. The sound and picture of the teacher can also see the teacher's operation on the mobile phone, which enriches the extensibility of the teacher's software using Android to push the flow in the course of teaching. One

【技术实现步骤摘要】
一种Android实现带摄像头采集的录屏推流的解决方法
本专利技术涉及一种图像采集技术,具体是一种Android实现带摄像头采集的录屏推流的解决方法。
技术介绍
目前市场上的同类产品的做法:在直播过程中,通过Android的摄像头和麦克风采集老师的画面和声音,并将其推送到服务器,供学生观看。其特点是:能够将当前教师的画面和声音采集后推送到到服务器,供学生端观看,学生端能够通过老师的讲解学习到相关的内容。其缺点是:直播的内容很容易受到限制,仅仅采集了教师的画面和声音,并没有向学生展示一些额外的内容,这样会让学生觉得直播过于生硬,导致学习的效果不佳。
技术实现思路
本专利技术的目的在于提供一种Android实现带摄像头采集的录屏推流的解决方法,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种Android实现带摄像头采集的录屏推流的解决方法,包含以下步骤:A、使用TextureView展示当前摄像头采集的内容并展示到屏幕上;B、使用服务来控制摄像头悬浮窗的展示生命周期;C、使用VirtualDisplay获取屏幕和摄像头悬浮窗的图像元数据;D、使用MediaCodec将VirtualDisplay获取的图像元数据封装生成视频数据流;E、使用AudioRecord和MediaCodec采集音频元数据并封装生成音频数据流;F、使用RTMP协议将生成的音视频流推送到服务器。作为本专利技术的进一步技术方案:所述步骤A具体是:使用TextureView将Camera采集的数据,通过Camera.setPreviewTexture(surface)方法展示出来,并通过WindowManager.LayoutParams.TYPE_PHONE的参数设置,将展示摄像头内容的界面作为悬浮窗口呈现在界面的最上方。作为本专利技术的进一步技术方案:所述步骤B具体是:创建一个服务,然后通过控制服务的生命周期,保证摄像头悬浮窗能够正确的展示和隐藏,并且服务生命周期和前端界面绑定,能够很大程度上有利于保活当前录屏推流应用的后台运行。作为本专利技术的进一步技术方案:所述步骤C具体是:通过Android原生API中的MediaCodec创建一个Surface,再通过MediaProjection可以创建一个VirtualDisplay对象,VirtualDisplay能够将Android屏幕的和摄像头悬浮窗的图像元数据一起获取,并渲染到之前MediaCodec创建的Surface里面。与现有技术相比,本专利技术的有益效果是:本专利技术解决了在教育类直播软件老师直播讲课的过程中,老师使用Android推流时存在的直播内容不丰富的问题,让学生技能看到老师的声音和画面,又能看到老师在手机上的操作,丰富了老师使用Android推流的软件在教学过程中的内容的可扩展性。附图说明图1为本专利技术的整体方框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,A.使用TextureView展示当前摄像头采集的内容并展示到屏幕上;使用TextureView将Camera采集的数据,通过Camera.setPreviewTexture(surface)方法展示出来,并通过WindowManager.LayoutParams.TYPE_PHONE的参数设置,将展示摄像头内容的界面作为悬浮窗口呈现在界面的最上方。B.使用服务来控制摄像头悬浮窗的展示生命周期;创建一个服务,然后通过控制服务的生命周期,保证摄像头悬浮窗能够正确的展示和隐藏,并且服务生命周期和前端界面绑定,能够很大程度上有利于保活当前录屏推流应用的后台运行。服务:服务是安卓系统中可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动,服务一旦被启动将在后台一直运行,即使启动服务的组件已销毁也不受影响。此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信。例如,服务可以处理网络事务、播放音乐,执行文件I/O或与内容提供程序交互,而所有这一切均可在后台进行。C.使用VirtualDisplay获取屏幕和摄像头悬浮窗的图像元数据;通过Android原生API中的MediaCodec创建一个Surface,再通过MediaProjection可以创建一个VirtualDisplay对象,VirtualDisplay能够将Android屏幕的和摄像头悬浮窗的图像元数据一起获取,并渲染到之前MediaCodec创建的Surface里面。D.使用MediaCodec将VirtualDisplay获取的图像元数据封装生成视频数据流;在将屏幕和摄像头悬浮窗的图像元数据获取之后,我们可以通过Android原生的硬编码方式,将屏幕的图像数据和摄像头悬浮窗的图像数据合并成一路视频数据流,关键代码如下:intindex=mEncoder.dequeueOutputBuffer(mBufferInfo,TIMEOUT_US);//将当前的图像元数据编码,一般生成的是H264格式ByteBufferencodedData=mEncoder.getOutputBuffer(index);…//获取编码后的数据流对象E.使用AudioRecord和MediaCodec采集音频元数据并封装生成音频数据流;AudioRecord的主要作用就是采集音频数据数据,MediaCodec的作用是将采集到的音频数据进行硬编码,生成音频数据流。F.使用RTMP协议将生成的音视频流推送到服务器;RTMP是音视频直播中常见的一个协议,通过RTMP协议,我们能够将音视频传到服务器,这样学生就能在观看端获取到当前我们推送的数据,观看老师的直播了。对于本领域技术人员而言,显然本专利技术不限于上述示范性实施例的细节,而且在不背离本专利技术的精神或基本特征的情况下,能够以其他的具体形式实现本专利技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本专利技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本专利技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。本文档来自技高网...
一种Android实现带摄像头采集的录屏推流的解决方法

【技术保护点】
1.一种Android实现带摄像头采集的录屏推流的解决方法,其特征在于,包含以下步

【技术特征摘要】
1.一种Android实现带摄像头采集的录屏推流的解决方法,其特征在于,包含以下步骤:使用TextureView展示当前摄像头采集的内容并展示到屏幕上;使用服务来控制摄像头悬浮窗的展示生命周期;使用VirtualDisplay获取屏幕和摄像头悬浮窗的图像元数据;使用MediaCodec将VirtualDisplay获取的图像元数据封装生成视频数据流;使用AudioRecord和MediaCodec采集音频元数据并封装生成音频数据流;使用RTMP协议将生成的音视频流推送到服务器。2.根据权利要求1所述的一种Android实现带摄像头采集的录屏推流的解决方法,其特征在于,所述步骤A具体是:使用TextureView将Camera采集的数据,通过Camera.setPreviewTexture(surface)方法展示出来,并通过WindowManager.LayoutPara...

【专利技术属性】
技术研发人员:任辉
申请(专利权)人:创盛视联数码科技北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1