CN108173873B - 一种Android实现带摄像头采集的录屏推流的解决方法 - Google Patents
一种Android实现带摄像头采集的录屏推流的解决方法 Download PDFInfo
- Publication number
- CN108173873B CN108173873B CN201810075206.9A CN201810075206A CN108173873B CN 108173873 B CN108173873 B CN 108173873B CN 201810075206 A CN201810075206 A CN 201810075206A CN 108173873 B CN108173873 B CN 108173873B
- Authority
- CN
- China
- Prior art keywords
- camera
- screen
- android
- teacher
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B5/00—Electrically-operated educational appliances
- G09B5/06—Electrically-operated educational appliances with both visual and audible presentation of the material to be studied
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种Android实现带摄像头采集的录屏推流的解决方法,包含以下步骤:A、使用TextureView展示当前摄像头采集的内容并展示到屏幕上;B、使用服务来控制摄像头悬浮窗的展示生命周期;C、使用VirtualDisplay获取屏幕和摄像头悬浮窗的图像元数据;D、使用MediaCodec将VirtualDisplay获取的图像元数据封装生成视频数据流;本发明解决了在教育类直播软件老师直播讲课的过程中,老师使用Android推流时存在的直播内容不丰富的问题,让学生技能看到老师的声音和画面,又能看到老师在手机上的操作,丰富了老师使用Android推流的软件在教学过程中的内容的可扩展性。
Description
技术领域
本发明涉及一种图像采集技术,具体是一种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原生的硬编码方式,将屏幕的图像数据和摄像头悬浮窗的图像数据合并成一路视频数据流,关键代码如下:
int index = mEncoder.dequeueOutputBuffer(mBufferInfo, TIMEOUT_US); //将当前的图像元数据编码,一般生成的是H264格式
...
ByteBuffer encodedData = mEncoder.getOutputBuffer(index);
… // 获取编码后的数据流对象
E.使用AudioRecord 和 MediaCodec 采集音频元数据并封装生成音频数据流;
AudioRecord的主要作用就是采集音频数据数据,MediaCodec的作用是将采集到的音频数据进行硬编码,生成音频数据流。
F. 使用RTMP协议将生成的音视频流推送到服务器;
RTMP是音视频直播中常见的一个协议,通过RTMP协议,我们能够将音视频传到服务器,这样学生就能在观看端获取到当前我们推送的数据,观看老师的直播了。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (1)
1.一种Android实现带摄像头采集的录屏推流的解决方法,其特征在于,用于在教育类直播软件老师直播讲课的过程中,老师使用Android推流时存在的直播内容不丰富的问题,让学生技能看到老师的声音和画面,又能看到老师在手机上的操作,丰富了老师使用Android推流的软件在教学过程中的内容的可扩展性,所述方法包含以下步骤:使用TextureView展示当前摄像头采集的内容并展示到屏幕上;使用服务来控制摄像头悬浮窗的展示生命周期;使用VirtualDisplay获取屏幕和摄像头悬浮窗的图像元数据;使用MediaCodec 将VirtualDisplay 获取的图像元数据封装生成视频数据流;使用AudioRecord 和 MediaCodec 采集音频元数据并封装生成音频数据流,AudioRecord的主要作用就是采集音频数据数据,MediaCodec的作用是将采集到的音频数据进行硬编码,生成音频数据流;使用RTMP协议将生成的音视频流推送到服务器,这样学生就能在观看端获取到当前我们推送的数据,观看老师的直播了;
其中,所述使用TextureView展示当前摄像头采集的内容并展示到屏幕上具体是:使用TextureView将Camera采集的数据,通过Camera.setPreviewTexture(surface)方法展示出来,并通过WindowManager.LayoutParams.TYPE_PHONE的参数设置,将展示摄像头内容的界面作为悬浮窗口呈现在界面的最上方;
其中,所述使用服务来控制摄像头悬浮窗的展示生命周期具体是:创建一个服务,然后通过控制服务的生命周期,保证摄像头悬浮窗能够正确的展示和隐藏,并且服务生命周期和前端界面绑定,能够很大程度上有利于保活当前录屏推流应用的后台运行;
其中,所述使用VirtualDisplay获取屏幕和摄像头悬浮窗的图像元数据具体是:通过Android原生API中的MediaCodec创建一个Surface,再通过MediaProjection可以创建一个VirtualDisplay对象,VirtualDisplay能够将Android屏幕的和摄像头悬浮窗的图像元数据一起获取,并渲染到之前MediaCodec创建的Surface里面;
其中,所述服务一旦被启动将在后台一直运行,即使启动服务的组件已销毁也不受影响。 此外,组件可以绑定到服务,以与之进行交互,以及执行进程间通信;
其中, 所述使用 MediaCodec 将VirtualDisplay 获取的图像元数据封装生成视频数据流,在将屏幕和摄像头悬浮窗的图像元数据获取之后,通过Android原生的硬编码方式,将屏幕的图像数据和摄像头悬浮窗的图像数据合并成一路视频数据流;关键代码如下:
int index = mEncoder.dequeueOutputBuffer(mBufferInfo, TIMEOUT_US);ByteBuffer encodedData = mEncoder.getOutputBuffer(index)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810075206.9A CN108173873B (zh) | 2018-01-26 | 2018-01-26 | 一种Android实现带摄像头采集的录屏推流的解决方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810075206.9A CN108173873B (zh) | 2018-01-26 | 2018-01-26 | 一种Android实现带摄像头采集的录屏推流的解决方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108173873A CN108173873A (zh) | 2018-06-15 |
CN108173873B true CN108173873B (zh) | 2021-04-09 |
Family
ID=62515983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810075206.9A Active CN108173873B (zh) | 2018-01-26 | 2018-01-26 | 一种Android实现带摄像头采集的录屏推流的解决方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108173873B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138738B (zh) * | 2019-04-15 | 2021-10-22 | 深圳价值在线信息科技股份有限公司 | 办公会议智能化的方法、装置、系统、存储介质和服务器 |
CN110536143A (zh) * | 2019-07-11 | 2019-12-03 | 网宿科技股份有限公司 | 推流方法与电子设备 |
CN111355729A (zh) * | 2020-02-27 | 2020-06-30 | 深圳市瑞驰信息技术有限公司 | 一种实时录屏推流与拉流显示引擎框架及数据传输方法 |
CN114222164A (zh) * | 2021-12-17 | 2022-03-22 | 深圳Tcl新技术有限公司 | 一种视频推流方法、装置、智能设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106101526A (zh) * | 2016-06-01 | 2016-11-09 | 北京金山安全软件有限公司 | 录屏方法及装置 |
CN106303329A (zh) * | 2016-08-11 | 2017-01-04 | 广州爱九游信息技术有限公司 | 录屏直播方法和装置、移动设备及直播系统 |
CN106406998A (zh) * | 2016-09-28 | 2017-02-15 | 北京奇虎科技有限公司 | 一种用户界面处理方法和装置 |
CN106686424A (zh) * | 2017-01-06 | 2017-05-17 | 广州四三九九信息科技有限公司 | 基于移动端录屏直播方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10410673B2 (en) * | 2014-10-28 | 2019-09-10 | Clipchamp Ip Pty Ltd | Embeddable video capturing, processing and conversion application |
-
2018
- 2018-01-26 CN CN201810075206.9A patent/CN108173873B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106101526A (zh) * | 2016-06-01 | 2016-11-09 | 北京金山安全软件有限公司 | 录屏方法及装置 |
CN106303329A (zh) * | 2016-08-11 | 2017-01-04 | 广州爱九游信息技术有限公司 | 录屏直播方法和装置、移动设备及直播系统 |
CN106406998A (zh) * | 2016-09-28 | 2017-02-15 | 北京奇虎科技有限公司 | 一种用户界面处理方法和装置 |
CN106686424A (zh) * | 2017-01-06 | 2017-05-17 | 广州四三九九信息科技有限公司 | 基于移动端录屏直播方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108173873A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108173873B (zh) | 一种Android实现带摄像头采集的录屏推流的解决方法 | |
CA2973415C (en) | Method and system for recording and broadcasting of network teaching | |
CN102129346B (zh) | 一种视频互动方法及装置 | |
US10354540B2 (en) | Method for generating a dedicated format file for a panorama mode teaching system | |
CN104540026A (zh) | 一种课堂内容录像及回放方法及系统 | |
CN104539436A (zh) | 一种课堂内容实时直播方法及系统 | |
CN101316356B (zh) | 面向远程教育的板书动态图像压缩方法 | |
WO2016188276A1 (zh) | 视频播放方法、客户端和计算机存储介质 | |
TW201246198A (en) | Sequencing content | |
CN107333164A (zh) | 一种图像数据处理方法及装置 | |
CN106327929A (zh) | 一种用于信息化的可视化数据控制方法及系统 | |
CN105261252A (zh) | 一种基于全景学习平台系统的实时动作渲染方法 | |
US20150195320A1 (en) | Method, System and Software Product for Improved Online Multimedia File Sharing | |
JP2021006894A (ja) | コンテンツ配信サーバ、コンテンツ作成装置、教育端末、コンテンツ配信プログラム、および教育プログラム | |
JP2021106378A (ja) | コンテンツ配信システム、コンテンツ配信方法、およびコンテンツ配信プログラム | |
CN108364518A (zh) | 一种基于全景教学模式的师生互动过程记录方法 | |
KR20010056342A (ko) | 멀티미디어 원격교육을 위한 사용자인터페이스 및자료구조와 컴퓨터망에서의 멀티미디어 강의 전송 방식 및관리구조 | |
CN111901628A (zh) | 基于zSpace桌面VR一体机的云端渲染方法 | |
CN112312066A (zh) | 一种基于多端实时绿幕合成的同步授课技术及应用 | |
KR20150112113A (ko) | 이벤트 처리 기반의 온라인 강의 콘텐츠 관리방법 | |
JP6334906B2 (ja) | 映像配信システムおよびプログラム | |
JP2003241630A (ja) | 動画配信方法、動画表示システム、教育モデル、ユーザーインターフェース、手動操作手順 | |
CN210804824U (zh) | 一种具有同步板书和直播功能的远程互动教学系统 | |
CN204929034U (zh) | 一种基于图像跟踪的录播系统 | |
CN115297224A (zh) | 一种校园虚拟偶像直播方法、系统、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |